我正在尝试为应用程序配置log4net。
System.IO.FileInfo fi = new System.IO.FileInfo("some junk file name");
log4net.Config.XmlConfigurator.Configure(fi);
log4net.Config.XmlConfigurator.ConfigureAndWatch(fi);
我很惊讶,当上面的代码没有抛出任何异常!!!!
当文件不存在时,为什么log4net没有抛出任何异常?这不是很糟糕的设计吗? 设计这种行为背后有什么原因??????
如果它没有抛出任何异常,我怎么知道,该文件被解析成功并正常工作?
答案 0 :(得分:2)
我认为这是故意的:在the Log4Net FAQ中查看“Log4Net是否是一个可靠的日志记录系统”。
这个想法是,日志子系统不应该因为日志记录子系统中的错误或配置错误而抛出导致应用程序崩溃的异常。
对于验证配置文件,您可以在部署到生产环境之前测试配置文件是否在开发环境中生成预期输出。除了使用经过测试的工具(不需要手动编辑),不要修改生产配置文件。
另外我了解您可以在log4net元素中添加属性“debug = true”以启用内部log4net调试。虽然您可能需要至少一个appender才能正确配置以查看内部调试输出。我从来没有试过这个。