Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Log4Net funciona na máquina Dev, falha quando implantado no host compartilhado (usando o mesmo db/connstring)


Na minha experiência, o log4net geralmente engole quaisquer erros internos, simplesmente resultando em instruções de log que não produzem nenhum resultado.

O que você pode tentar é habilitar o log interno do log4net. Você pode fazer isso adicionando o seguinte ao seu appSettings seção:
<add key="log4net.Internal.Debug" value="true" />

Isso define a propriedade LogLog.InternalDebugging para verdadeiro . O log4net agora registrará na saída padrão e nos fluxos de erro e nos ouvintes de rastreamento configurados.

Você pode usar a a seguir configuração para capturar todas as mensagens registradas no rastreamento:
<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>

Todas as mensagens registradas pelo log4net internamente aparecerão em TextWriterOutput.log . Se você receber uma SecurityException quando você adiciona o ouvinte de rastreamento à sua configuração, muito provavelmente a identidade do apppool não tem direitos suficientes para criar um arquivo no local especificado (no exemplo:c:\ ). Tente outro local ou conceda direitos suficientes à identidade do apppool.