У меня странная проблема с log4net.
В приложении ASP.NET я хочу настроить log4net внешне, поэтому у меня есть отдельный файл log4net.config, который я подключаю к своему веб-приложениюс этой строкой в файле AssemblyInfo.cs, принадлежащей моему веб-приложению:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
Теперь, если я создаю экземпляр класса log4net logger обычным способом, подобным следующему:работает, а регистрация работает как обычно.Тем не менее, я поместил свой код регистрации в класс LogManager, который является частью отдельной сборки (Infrastructure) и повторно используется в ряде проектов.У него есть GetLogger, который выглядит следующим образом:
public static class LogManager
{
public static ILog GetLogger()
{
var stack = new StackTrace();
var frame = stack.GetFrame(1);
return new log4net.LogManager.GetLogger(frame.GetMethod().DeclaringType);
}
}
Так что я могу использовать это в своем коде asp.net:
public class MyClass
{
private static readonly ILog _logger = LogManager.GetLogger();
....
Но ... Это не работает!Ведение журнала не производится. Не похоже, что файл конфигурации подключен правильно.Если я поместил свою конфигурацию log4net прямо в web.config, то этот LogManager работает нормально.