Log-Datei nicht erstellt?
Ich bin mit log4net und haben komplett-setup mit param name="File" value= "C:\Application.log". Doch die Datei wird nicht erstellt auf C:. Ich arbeite mit Windows 7 und vielleicht so etwas wie Berechtigungen verhindert wird, dass die Datei nicht erstellt werden kann.
Hier ist die app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
</configSections>`
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender“ type=“log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\Users\Mohit\Documents\Application.log" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern“ value=“%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>
</configuration>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine Reale Datei-Namen. Was Sie definiert, innerhalb deiner config ist ein Ordner Namen. Statt:
etwas wie:
Auch, werden Sie wahrscheinlich benötigen erhöhte Berechtigungen für Ihre Anwendung zum schreiben der log in das Stammverzeichnis c: Ordner. Die UAC wird nicht lassen Sie zu schreiben, um root-Ordner.
Wie Andy sagte, Sie werde besser sein, wählen Sie einige Unterordner von Windows-Benutzer-Ordner wie:
log4net hat einige vordefinierte Variablen, die Sie verwenden können, um Ziel-Ordner mit Sonderfunktion. Es gibt einige Fragen, die hier auf SO:
Wie Sie angeben, gemeinsamen Anwendungsdaten-Ordner für log4net?
C#, wie Sie angeben, die appData-Datei Pfad in der app.config-Datei
Yeah, stellen Sie sicher, dass der Benutzer, der die Ausführung der Anwendung hat Schreibzugriff auf c:.
Besser noch, Sie wahrscheinlich nicht wollen, schreiben Sie das Anwendungsprotokoll, um das root-Verzeichnis c:\. Wahrscheinlich wäre es besser, wählen Sie einen Speicherort, in denen Ihre app installiert ist, oder irgendwo unter Dokumente und Einstellungen (oder Windows 7 entspricht).
Mein problem war die Reihenfolge der Abschnitte in meinem App.config-Datei. Ich hatte meine
<startup>
Abschnitt zuerst, dann meine<configSections>
. Aus irgendeinem Grund war ich nicht immer ein Fehler in meinem Windows-app, aber es hat einen Fehler in einer Console app. Offenbar<configSections>
muss der erste Abschnitt unter<configuration>
So, statt dieses:
Hierzu:
Was mein problem gelöst, war im Grunde was CTBrewski hier gepostet (+1 btw!), aber meine App.config hatte einen appSettings-Eintrag nicht configSections Eintrag.
Zog ich die appSettings-Eintrag mit meinem log4net config-Einträge über den Autostart-Eintrag, und die Protokolle wurden geschrieben, um die Benutzer-Profil:
Und dann natürlich mein appender sieht wie folgt aus: