Уникальный файл журнала для каждого экземпляра класса

В настоящее время я запускаю службу Windows, которая создает несколько экземпляров класса.

Вверху класса обслуживания и любого другого класса в моем решении, у меня есть что-то вроде этого:

private static readonly ILog _log = LogManager.GetLogger(typeof(SomeClassTypeHere));

В моем App.config у меня настроен Log4Net для одного файла:


    
      
      
      
      
      
      
      
      
      
        
      
    

    
      
      
    
  

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

Я попытался снять модификатор readonly и установить следующее в конструкторе класса:

_log = LogManager.GetLogger("DataCollectionClass_" + deviceName + "_" + DateTime.Now.ToString("MMddyyyy"), typeof(SomeClassTypeHere));

Но это требует, чтобы я определял аппендер вручную в конфигурации, что было бы громоздко и сложно поддерживать.

Есть какие-нибудь мысли по поводу того, как сделать это в L4N? Я видел ссылки здесь , но на самом деле не знаю, нужна ли такая большая структура.

17
задан Community 23 May 2017 в 12:33
поделиться