c# – 在Log4Net中找不到Logger时设置默认日志
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在Log4Net中找不到Logger时设置默认日志,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1912字,纯文字阅读大概需要3分钟。
内容图文
我使用Log4Net作为我们应用程序的日志记录机制.我们的配置包含在配置文件中,在我们的代码中,我们以编程方式调用我们要调用的几个记录器(主要使用FileAppenders)中的哪一个.最近我意识到我们的一个日志文件没有被填充,我跟踪它的字符串不匹配,在我们的配置文件中的名称和我们在代码中以编程方式调用的名称之间.因为LogManager找不到指定的记录器,所以返回了root,这对于我们的配置而言没有设置为有意义地记录在任何地方.
我的问题是,有没有办法设置log4net以允许使用特定的记录器,但如果找不到指定的记录器,这将回退到一般记录器?
例如,使用这样的配置文件
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="TestFileLogger">
<level value="ALL" />
<appender-ref ref="TestFileAppender" />
</logger>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p [%x] - %m%n" />
</layout>
</appender>
<appender name="TestFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="TestLog" />
<param name="DatePattern" value=".yyyyMMdd".log"" />
<param name="AppendToFile" value="true" />
</appender>
</log4net>
</configuration>
并在C#中调用记录器就像这样
var fileLogger = LogManager.GetLogger("TestFileLogger");
fileLogger.Info("This logs appropriately.");
var bogusLogger = LogManager.GetLogger("Bogus");
bogusLogger.Info("This should go to a general log. Bogus is not a recognized appender");
有没有一种方法可以将消息从bogusLogger记录到某种常规日志文件中?我最初的想法是创建一个通用文件appender,它是根节点的一部分,但这非常嘈杂,因为所有日志消息都将路由到此文件.有没有办法只路由未在另一个日志文件中捕获的邮件?
解决方法:
您可以使用LogManager.Exists(“Bogus”)来确定是否应使用伪记录器或默认实现.
您可以在LogManager上创建一个可以为您处理它的扩展方法.
内容总结
以上是互联网集市为您收集整理的c# – 在Log4Net中找不到Logger时设置默认日志全部内容,希望文章能够帮你解决c# – 在Log4Net中找不到Logger时设置默认日志所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。