2014-10-30 2 views
0

У меня есть проект DLL в моем решении, ответственный за протоколирование событий в других моих проектах. Сейчас я столкнулся с проблемой сохранения файла журнала. Я хотел бы сохранить его в пользовательских данных приложения (c: \ users \\ AppData \ Local \ .....)WPF с log4net - сохранить вход пользователя userappdata

Как я могу получить доступ к этому местоположению в файле log4net.config?

У меня есть это в моих дллах проекте:

static Log() 
     { 
      log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileRelease2"; //log file path 
#if DEBUG 
      log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileDebug2"; //log file path 
#endif 

      FileInfo configFileInfo = new FileInfo("log4net.config"); 

      log4net.Config.XmlConfigurator.ConfigureAndWatch(configFileInfo); 

      log = LogManager.GetLogger(typeof(Log)); 
     } 

Спасибо заранее.

С уважением,

=========== EDIT 2 ==========

Я сумел поставить свою log4net.config, как это:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="DEBUG" /> 
     <levelMax value="OFF" /> 
     </filter> 

     <param name="AppendToFile" value="true"/> 
     <file value="${AppData}\AppName\Logs\log" /> 
     <staticLogFileName value="false"/> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <datePattern value=" yyyy-MM-dd&quot;.txt&quot;"/> 

     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/> 
     </layout>  
    </appender> 

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что в IDE (VS2013) создается папка. Когда я устанавливаю приложение (используя установщик проекта визуальной студии), папка/файл не создается.

Если я запустить приложение с правами администратора, она создает папку/файл ...

Любые идеи, почему?

+0

Похоже, вам может понадобиться настраиваемое действие в вашем установщике для создания папки, в которой должны храниться файлы журнала? Я не создал установщиков с VS, поэтому не могу помочь вам там, я боюсь. –

ответ

0

Попробуйте использовать

log4net.GlobalContext.Properties["LogFileName"] = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "fileRelease2"); 

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

  • Нет связанных вопросов^_^