Вопрос по logging, .net, log4net – Настройка log4net с помощью XML-файла

16

Я попытался настроить log4net для записи всего на консольный вывод. У меня есть файл конфигурации с именемLog4Net.config



  
    
  
  
    
      
        
      
    
    
      
      
    
  

и у меня есть мой основной класс (просто тестовый случай)

namespace TestLog4Net {
    class Program {
        private static readonly ILog log = LogManager.GetLogger(typeof(Program));

        static void Main(string[] args) {
            log.Info("Info");
            log.Error("Error");
            Console.ReadKey();
        }
    }
}

Я добавил эти строки вAssemblyInfo.cs

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

Но сейчас ничего не регистрируется, кто-то может объяснить это?

У меня точно такая же проблема. У меня есть аналогичная реализация, и все же я не могу решить проблему. Можете ли вы помочь мне исправить это? Karthikeyan
Убедитесь, что файл log4net.config помечен как «Копировать в вывод »-> «Копировать всегда » в свойствах. Amit

Ваш Ответ

2   ответа
18

Попробуйте эту пользовательскую конфигурацию через код. Работал для меня и проверен в нескольких приложениях ..

string logFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "\\Config\\Log4Net.config");
    FileInfo finfo = new FileInfo(logFilePath);
   log4net.Config.XmlConfigurator.ConfigureAndWatch(finfo); 

Я понимаю, это'очень поздний ответ Но будет полезно для некоторых прав.

19

Когда у вас есть log4net config в отдельном файле конфигурации, вы не должны включать элементы конфигурации и configSections. log4net должен быть элементом верхнего уровня после объявления xml.

Похожие вопросы