инициализация log4net
Мы искали дубликаты, но должны спросить следующее, каким бы простым оно ни казалось, чтобы раз и навсегда разобраться в этом!
В новом консольном приложении, использующем log4net версии 1.2.10.0 на VS28KSP1 на 64-битной W7, у меня есть следующий код: -
using log4net;
using log4net.Config;
namespace ConsoleApplication1
{
class Program
{
static readonly ILog _log = LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
_log.Info("Ran");
}
}
}
В моемapp.config
, Я имею:
Это ничего не пишет, если я не добавлю атрибут:
[ assembly:XmlConfigurator ]
Или явно инициализируйте его в Main ():
_log.Info("This will not go to the log");
XmlConfigurator.Configure();
_log.Info("Ran");
Это поднимает следующие вопросы: я
Я почти уверен, что яЯ видел, как это работает где-то в некоторой версии log4net без добавления атрибута сборки или вызова в Main. Может ли кто-нибудь заверить меня, что яя не представляю это?Может кто-то, пожалуйста, указать мне, где в документе прямо указано, что требуются и раздел конфигурации, и перехват инициализации - надеюсь, с объяснением того, когда это изменилось, если это произошло?Я легко могу себе представить, почему это может быть политика - с явным шагом инициализации, чтобы избежать неожиданностей и т. Д.просто я, кажется, вспоминаю, что это не всегда так ... (И обычно у меня есть конфиг в отдельном файле, который обычно выводит конфигурации из картинки)