2015-01-29 3 views
0

В моем проекте vb.net я использую log4net и использую абсолютный путь для файла журнала. Но в итоге мне нужно записать файл журнала в папку C: \ Users \ UserName \ AppData \ Local \ Temp \ Log (имя пользователя - переменная). Невозможно найти способ, как установить это в файле log4net.log4net set log файл по относительному пути

Мой файл log4net в данный момент нравится:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <log4net> 
    <appender name="ExampleAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="C:\Log\App.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <datePattern value="_yyyyMMdd" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level - 
      [%logger] %message%newline" /> 
     </layout> 
    </appender> 
    <logger name="App"> 
     <level value="ALL" /> 
     <appender-ref ref="ExampleAppender" /> 
    </logger> 
    </log4net> 
</configuration> 

Есть ли способ, чтобы выполнить это? Благодарю.

ответ

1

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

<file type="log4net.Util.PatternString" value="${LOCALAPPDATA}\Temp\Log\App.log" /> 

Это создает файл журнала (для меня) в C:\Users\stuartd\AppData\Local\Temp\Log\App.log

+0

спасибо за быстрый ответ. Не знаю, почему я все еще не могу получить файл журнала в указанной папке, есть ли что-нибудь еще? –

+0

Я проверил быструю проверку конфигурации с изменениями и создавал и записывал в файл: обратите внимание, что с вашей текущей конфигурацией ваш регистратор * должен * называться «Приложение», чтобы записывать записи журнала, так как у вас есть не определен корневой элемент. Если вы используете это в веб-приложении, идентификатор пула приложений может не иметь прав на запись в '$ {LOCALAPPDATA}' – stuartd

+0

Привет, stuartd, это приложение для настольных систем, спасибо. –

Смежные вопросы