有人可以建议如何为控制台应用配置log4net吗?
或者至少如何/在哪里捕获Application_Start
事件? (此时此刻需要一些电话)
提前致谢!
答案 0 :(得分:13)
尝试写作
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
AssemblyInfo.cs
中的
就是这样!
答案 1 :(得分:10)
您需要在实例化第一个记录器之前对其进行配置。
这样做:
您的主要课程(Program.cs)不应该有记录器
主方法不应引用任何具有记录器的类。
然后,您可以在main方法中配置log4net。
或者,您可以使用包装器类来实例化记录器,以确保在创建记录器之前配置log4net,例如:
static class Log4NetHelper
{
private static bool _isConfigured;
static void EnsureConfigured()
{
if (!_isConfigured)
{
... configure log4net here ...
_isConfigured = true;
}
}
public static ILog GetLogger(string name)
{
EnsureConfigured();
log4net.ILog logger = log4net.LogManager.GetLogger(name);
return logger;
}
}