我有一个广泛使用log4net的C#(.NET 3.5)应用程序。 log4net配置驻留在app.config
文件中。log4net fallback appender配置在缺少配置文件的情况下?
配置使用[assembly: XmlConfigurator(Watch = true)]
在AssemlyInfo.cs
应用使用单一的应用程序范围内的记录器实例来完成,实例化一个记录器包装类的静态构造函数:
public class Logger{
//....
private static readonly ILog logger;
static Logger()
{
logger = LogManager.GetLogger(Assembly.GetEntryAssembly().GetName().Name);
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
}
//....
}
该应用程序被设计为远程服务器上运行,通过调度程序,没有人的主题,独自在黑暗中。 :)问题是,在缺少配置文件的情况下,它只是静默崩溃(没有log4net配置=>没有日志记录)。
还有什么办法来检查是否有在配置任何附加目的地,如果没有 - 编程添加某种回退的appender。
我是相当新的log4X伐木工人家庭,所以,如果我问一些小事 - 请善待,log4net的文档非常可怕的。 :)
它可以操纵日志,看看这个答案:http://stackoverflow.com/questions/1519728/programmatically-adding-and-removing-log-appenders-in-log4net – Thinhbk
测试的存在配置文件。如果它不存在,请在代码中创建您的记录器 - http://stackoverflow.com/questions/1436713/cant-configure-log4net-in-code。或者,将log4net配置与应用程序打包为嵌入式资源,以便永远不会丢失。或者只是确保你总是将配置与应用程序一起发送;-) – dash