Wie soll ich konfigurieren, log4net zu schreiben, %LOCALAPPDATA% auf Windows XP und 7?
Ich habe eine interne app, die mit log4net für die Protokollierung. Ich würde gerne die logs generiert werden, bei %LOCALAPPDATA%\Vendor\App\application.log
. Leider log4net ist das erstellen der log-Datei zu %APPDATA%
statt. Es ist nicht eine große problem, weil wir wirklich keine servergespeicherten profilierten hier, aber ich weiß nicht, wie die wenig Besonderheiten in meinem code, wenn ich es vermeiden kann.
Irgendwelche Gedanken auf, wie man die Datei geschrieben, um den Speicherort habe ich angegeben, ohne Konfiguration von log4net programattically und mit pinvoke um den Pfad für XP?
Hier ist die appender-Abschnitt meiner config-Datei, wenn es keine Hilfe:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="${LOCALAPPDATA}\Vendor\App\application.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" />
</layout>
</appender>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn dies nicht funktioniert, würde es bedeuten Ihre Umgebungsvariable ist falsch.
Log4net nicht haben, etwas besonderes in es zu behandeln, entweder appdata oder localappdata. Alle es tut, ist Anruf-System.Umwelt.GetEnvironmentVariables (), um eine Hash-Tabelle und führt die substitution basierend auf was auch immer Werte zurückgibt.
SEHR spät zur party hier, aber ich kam gerade über diese und die Antwort gefunden.
Scheint, dass Sie verwenden können, log4net.Util.PatternString einfügen Umgebungsvariablen in die Datei Pfad. Also die OP ' s Beispiel wird zu:
Hinzufügen type="log4net.Util.PatternString", um das Datei-element und geben Sie dann die %env Muster-Bezeichner gefolgt von den Namen der Umgebungsvariablen in geschweiften Klammern.
Hoffe, das jemand hilft!