log4net не будет создавать файл журнала в Windows 7 - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть сборка, которая использует log4net для ведения журнала.
У меня есть это в файле Assemblynfo.cs:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

Файл log4net.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
    <layout type="log4net.Layout.PatternLayout">
      <!--          <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> -->
      <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="${APPDATA}\\DC Lasersystem\\DCMark\\DCMarkLog.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value=" yyyy-MM-dd" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>

  <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>

  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
    <layout type="log4net.Layout.PatternLayout">
      <!--          <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> -->
      <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>

  <root>
    <level value="DEBUG" />
    <appender-ref ref="RollingLogFileAppender" />
  </root>
</log4net>

Когда я запускаю свое приложение из IDE, оно работает. Файл DCMarkLog.txt создается в каталоге %APPDATA%\DC Lasersystem\DCMark.

НО Когда я устанавливаю приложение и запускаю его из каталога Program Files, я не получаю файл журнала!

У меня есть те же файлы в каталоге установки, что и в каталоге Release.

Я предполагаю, что это какое-то разрешение, которое не правильно ...

У кого есть подсказка?

// Андерс

1 Ответ

4 голосов
/ 21 февраля 2012

Это проблема с разрешением. В Windows 7 вам требуются права администратора для записи в каталог Program Files. Вам придется либо:

  • Запустите приложение от имени администратора
  • Или предпочитаемый способ записи файла журнала в папку, к которой у пользователя есть доступ для записи.

Чтобы найти правильное место для записи, обратитесь к: Где хранить данные приложений в Windows 7 и Vista

...