sql >> Base de Datos >  >> RDS >> Sqlserver

Log4Net funciona en la máquina Dev, falla cuando se implementa en un host compartido (usando la misma db/connstring)

En mi experiencia, log4net generalmente se traga cualquier error interno, lo que simplemente genera declaraciones de registro que no producen ningún resultado.

Lo que puede intentar es habilitar el registro interno de log4net. Puede hacerlo agregando lo siguiente a su appSettings sección:

<add key="log4net.Internal.Debug" value="true" />

Esto establece la propiedad LogLog.InternalDebugging a true . log4net ahora iniciará sesión en los flujos de error y de salida estándar y en los detectores de seguimiento configurados.

Puede usar la siguiente configuración para capturar cualquier mensaje registrado en el seguimiento:

<system.diagnostics>
  <trace autoflush="false" indentsize="4">
    <listeners>
      <add name="myListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="c:\TextWriterOutput.log" />
      <remove name="Default" />
    </listeners>
  </trace>
</system.diagnostics>

Todos los mensajes registrados internamente por log4net aparecerán en TextWriterOutput.log . Si obtiene una SecurityException cuando agrega el detector de seguimiento a su configuración, es muy probable que la identidad del grupo de aplicaciones no tenga suficientes derechos para crear un archivo en la ubicación especificada (en el ejemplo:c:\ ). Pruebe con otra ubicación o conceda a la identidad del grupo de aplicaciones los derechos suficientes.