Мне действительно нравится log4net, и это мой подход к ведению журналов.Единственная проблема, с которой я столкнулся при работе с этим фреймворком, заключается в том, что его лучше всего настроить с помощью файла XML.Это означает, что вам необходимо знать все ваши требования к ведению журналов перед запуском приложения.
Наше приложение создает множество подключений к внешним хостам.Мы хотели бы создать регистратор для каждого, который записывает в отдельный файл.Поэтому, если у нас есть 3 соединения, A, B и C, мы хотели бы видеть logA.txt, logB.txt и logC.txt.Проблема в том, что количество соединений, которые мы устанавливаем, является полностью динамическим и известно только во время выполнения.Имена, которые мы выбираем для файлов, настраиваются в базе данных, а также их многословие.
Я доволен log4net в любой другой части проекта.Это просто возможность динамически создавать регистраторы для каждого отдельного соединения.Я спрашивал что-то подобное раньше, но как это сделать log4net.Решение немного грязное, и я не уверен, как оно будет играть с остальной частью журналирования, которая настроена для проекта.
Существует ли другая структура ведения журналов, которую проще настроить программно.Я думал о чем-то вроде следующего (например).
ILog log = new Log();
log.FileName = "foobar.txt"
log.Level = LogLevel.Debug;