С# как указать путь к файлу appData в файле app.config
Я использую log4net, и я должен был сохранить файл журнала в файле AppData для win XP/Vista и т.д.
Это мой файл app.config, и я указал имя softphone.log. Hoewver, я не уверен, как указать полный путь к файлу, так как каждый пользователь будет иметь другой путь в зависимости от своего имени пользователя.
<log4net>
<logger name="default">
<level value="DEBUG"/>
</logger>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="softphone.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackup value="10"/>
<maximumFileSize value="1MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
</log4net>
В моем исходном коде я могу получить путь, выполнив следующее:
System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Однако я не могу использовать вышеприведенное в моем app.config, и если бы я жестко закодировал путь в моей системе, путь был бы следующим:
C:\Documents and Settings\John\Application Data
Однако это будет отличаться для каждого клиента. Итак, есть ли способ сделать это для файла app.config?
Большое спасибо за любые предложения,
Ответы
Ответ 1
Я не верю, что вы можете делать то, что хотите, есть метод для настраиваемых разделов парсинга файла app.config, чтобы вы могли добавить свой собственный токен, который вы могли бы заменить с правильным значением, но я не Посмотрите, как это будет работать внутри раздела log4net.
Однако все, что настроено для log4net внутри конфигурации, также может быть установлено в коде. Я думаю, что вам лучше всего будет установить свойство для приложения в коде сразу после запуска приложения.
Ах, неважно, быстрый поиск показал мое невежество. Из здесь и здесь кажется, что что-то похожее на это:
<file value="${APPDATA}\log-file.txt" />
Будет делать то, что вы хотите. Я не тестировал это сам, поэтому я тоже остану свой первый ответ, но мне было бы интересно узнать, есть ли у вас какая-нибудь удача.