Перенаправить журнал log4net в каталог пользователя

У меня есть программа, которая использует log4net. Он регистрируется непосредственно в папке exe.

Теперь, когда вы переходите на станцию ​​с Windows > XP (Vista, Seven), я заметил, что журналы не всегда созданы, потому что я полагаюсь на пользовательские привилегии и другие материалы безопасности...

Можно ли перенаправить журналы в папку пользователя? Скажите

\\ Username\MyProgram\Logs

Ответы

Ответ 1

Пример config.xml:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="${USERPROFILE}\MyProgramName\Logs\rolling-log-" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="100KB" />
    <rollingStyle value="Date" />
    <datePattern value="yyyy-MM-dd.'log'" />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
        <header value="[Log opening]&#13;&#10;" />
        <footer value="[Log closing]&#13;&#10;" />
        <conversionPattern value="%date %-5level %logger - %message%newline" />
    </layout>
</appender>

отметьте переменную среды ${USERPROFILE}.

Ответ 2

Вместо ${USERPROFILE} (см. ответ от moldovanu) вы можете использовать ${LOCALAPPDATA} или ${APPDATA}. Это записывает ваши файлы журналов в папку AppData пользователей (локальная или роуминг-папка).

Ответ 3

Да, вы можете изменить местоположение файла журнала по умолчанию. В конфигурации измените настройку file value. Следующее помещает файл в корневой каталог C:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="c:\\log-file.txt"/>

Вы даже можете использовать переменную среды, для которой используется одно имя TMP:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="${TMP}\log-file.txt" />
    <appendToFile value="true" />