Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Log4Net funktioniert auf Dev-Rechnern, schlägt fehl, wenn es auf einem gemeinsam genutzten Host bereitgestellt wird (unter Verwendung derselben db/connstring)

Meiner Erfahrung nach schluckt log4net normalerweise alle internen Fehler, was einfach zu Protokollanweisungen führt, die keine Ergebnisse liefern.

Was Sie vielleicht versuchen möchten, ist die interne Protokollierung von log4net zu aktivieren. Sie können dies tun, indem Sie Folgendes zu Ihren appSettings hinzufügen Abschnitt:

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

Dadurch wird die Eigenschaft LogLog.InternalDebugging auf true . log4net loggt sich nun in die Standardausgabe und Fehlerstreams sowie in konfigurierte Trace-Listener ein.

Sie können die folgende Konfiguration verwenden So erfassen Sie alle Nachrichten, die für die Ablaufverfolgung protokolliert wurden:

<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>

Alle von log4net intern protokollierten Meldungen erscheinen in TextWriterOutput.log . Wenn Sie eine SecurityException erhalten Wenn Sie den Ablaufverfolgungslistener zu Ihrer Konfiguration hinzufügen, hat die Apppool-Identität sehr wahrscheinlich keine ausreichenden Rechte, um eine Datei am angegebenen Speicherort zu erstellen (im Beispiel:c:\ ). Versuchen Sie es mit einem anderen Standort oder geben Sie der Apppool-Identität ausreichende Rechte.