Перенаправить журнал 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] " />
<footer value="[Log closing] " />
<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" />