Ich möchte ein neues Protokoll zur Datei hinzufügen. Das ist mein Appender:
%Vor%und in meiner Klasse füge ich
hinzu %Vor%und ich füge jeden für die Datei hinzu, aber: log4net schreibt nicht in die Datei. Warum?
Log4net schlägt automatisch fehl, wenn ein Problem auftritt. Die konzeptionelle Einbildung ist, dass keine Protokollierung dem Herunterfahren der Anwendung vorzuziehen ist. Um herauszufinden, was falsch ist, aktivieren Sie Log4nets internes Debugging, indem Sie diesen Schlüssel zu Ihrer [app / web] .config-Datei hinzufügen:
%Vor% Die Debug-Meldungen werden in die Konsole oder in das System.Diagnostics.Trace
-System geschrieben. Mehr Details von Phill Haack bei Ссылка
Es gibt eine Reihe von Gründen, warum Log4net fehlschlagen kann. Berechtigungen Probleme im Log-Datei-Verzeichnis, für Anfänger (vor allem für Server-Prozesse, wo Ihre wahrscheinlich unter einem eingeschränkten Satz von Berechtigungen für die Sicherheit ausgeführt wird).
Sie müssen nur Configure aufrufen:
%Vor%Sie können mehr Details hier sehen: Log4net schreibt die Protokolldatei nicht
Sie müssen die Protokollierung als allerersten Schritt in Ihrer App initialisieren, und zwar von der gleichen Assembly, die das [assembly]
-Tag hat:
Aus den Dokumenten :
Wenn Sie Konfigurationsattribute verwenden, müssen Sie daher log4net aufrufen damit es die Attribute lesen kann. Ein einfacher Anruf an
LogManager.GetLogger
wird die Attribute in der aufrufenden Assembly verursachen gelesen und verarbeitet werden. Daher ist eine Protokollierung unbedingt erforderlich so früh wie möglich während des Startvorgangs der Anwendung aufrufen, und sicherlich bevor irgendwelche externen Baugruppen geladen und aufgerufen wurden.
Fügen Sie so etwas in Ihrem Startcode hinzu:
%Vor%Sie sollten diesen Konfigurationsabschnitt hinzufügen:
%Vor%verweist auf die log4net-Konfiguration.