Как указать путь к файлу журнала с log4net.config? - PullRequest
1 голос
/ 09 мая 2019

В моем log4net.config я положил

<appender name="Access" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%envFolderPath{CommonApplicationData}\MyApp\test.txt"/>  

, и мой код для конфигурации

    XmlDocument log4netConfig = new XmlDocument();
    log4netConfig.Load(File.OpenRead("log4net.config"));
    var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
                               typeof(log4net.Repository.Hierarchy.Hierarchy));

    log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);

, но он не создавал файл в C: \ ProgramData \ MyApp】,

Я также пытался использовать

  • % envFolderPath {ApplicationData}
  • % envFolderPath {ProgramData}

Любые идеи.

Спасибо!

1 Ответ

0 голосов
/ 09 мая 2019

Отлично работает на моей машине.Вы можете попытаться отладить его с помощью шагов:

  1. Попробуйте записать информацию по какому-либо жестко заданному пути, например C: \ temp, чтобы убедиться, что ваша конфигурация работает нормально.
  2. Добавить ссылку наSystem.Configuration.ConfigurationManager чтобы убедиться в наличии всех библиотек
  3. Используйте эту строку для настройки log4net:

XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetEntryAssembly()), new FileInfo("log4net.config"));

Убедитесь, что у вас достаточно прав для записи в специальные папки. Создайте новое консольное приложение в ядре .net с той же конфигурацией и включите внутреннюю отладку:

log4net.Util.LogLog.InternalDebugging = true;

Вы точно увидите, что происходит.Вы увидите, какие пути использует ваше приложение, и увидите все ошибки, возникающие во время внутренней конфигурации log4net.

...