Log4net 没有正确加载配置
Log4net not loading config properly
我有一个单独的 class 库,其中包含一个静态 class,其中我包装了 Log4Net 的使用。
像这样(见下文)。
public static class Logger
{
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static Logger()
{
log4net.Config.XmlConfigurator.Configure();
log = log4net.LogManager.GetLogger(typeof(Logger));
log.Logger.IsEnabledFor(log4net.Core.Level.All);
}
public static void Error(object msg)
{
log.Error(msg);
}
public static void Error(object msg, Exception ex)
{
log.Error(msg, ex);
}
}
我无法记录任何内容。当我进入代码时,我看到一些对象的消息,例如 ConfigurationMessage:
{log4net:ERROR XmlConfigurator: Failed to find configuration section
'log4net' in the application's .config file. Check your .config file
for the and elements. The configuration
section should look like: }
这个class的assemblyinfo.cs,我添加了这个
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
所以,显然,它找不到这个文件?该程序集是从 ASP.Net MVC Web 应用程序使用的,在编译时,log4net.config 被复制到 /bin 文件夹中,所以它在那里,但找不到它?
程序集属性配置不能很好地与 Web 应用程序配合使用,尤其是当程序集属性不在主程序集中时。
而是使用 XmlConfigurator.Configure
的重载来引用文件本身:
// or wherever your file is
var fileInfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
if (fileInfo.Exists)
log4net.Config.XmlConfigurator.Configure(fileInfo);
else
throw new InvalidOperationException("No log config file found");
我有一个单独的 class 库,其中包含一个静态 class,其中我包装了 Log4Net 的使用。 像这样(见下文)。
public static class Logger
{
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static Logger()
{
log4net.Config.XmlConfigurator.Configure();
log = log4net.LogManager.GetLogger(typeof(Logger));
log.Logger.IsEnabledFor(log4net.Core.Level.All);
}
public static void Error(object msg)
{
log.Error(msg);
}
public static void Error(object msg, Exception ex)
{
log.Error(msg, ex);
}
}
我无法记录任何内容。当我进入代码时,我看到一些对象的消息,例如 ConfigurationMessage:
{log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the and elements. The configuration section should look like: }
这个class的assemblyinfo.cs,我添加了这个
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
所以,显然,它找不到这个文件?该程序集是从 ASP.Net MVC Web 应用程序使用的,在编译时,log4net.config 被复制到 /bin 文件夹中,所以它在那里,但找不到它?
程序集属性配置不能很好地与 Web 应用程序配合使用,尤其是当程序集属性不在主程序集中时。
而是使用 XmlConfigurator.Configure
的重载来引用文件本身:
// or wherever your file is
var fileInfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
if (fileInfo.Exists)
log4net.Config.XmlConfigurator.Configure(fileInfo);
else
throw new InvalidOperationException("No log config file found");