• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在C#应用中使用CommonLogging日志接口

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

      我在C#应用中一般使用log4net来记录日志,但如果项目中有个多个工程,那么没有工程都需要引用log4neg,感觉很不爽。不过今日在开spring.net的时候,看到了有个通用日志接口Common Logging,可以很好的解决项目中多个工程的问题。由于Common Logging是一个日志的基础设施接口,因此更换到其他日志框架,也不需要修改程序代码。

     因为我不愿意将所有的配置参数都写入到app.config.xml,那样会把配置文件弄得很大、很乱。我的思路是:在配置文件中加载Common Logging, 通过Common Logging的Adapter的参数制定Log4net文件的位置,而spring的配置文件可以通过应用程序加载或者在app.config.xml中加载都可以。

Common Logging的配置如下:(ver:1.2.0.0,该版本有spring决定)

View Code
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>

<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="FILE" /> <!-- FILE,FILE-WATCH,INLINE,EXTERNAL-->
<arg key="configFile" value="~/log4net.xml" />
<arg key="level" value="INFO" />
</factoryAdapter>
</logging>
</common>
</configuration>

   而Log4net的配置也终于实现了将错误日志和业务日志分离的功能。具体配置如下:(ver:1.2.10)

View Code
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<!--调试日志-->
<appender name="debugLog" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="logs\debug.log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
</filter>
</appender>

<!--信息日志-->
<appender name="infoLog" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="logs\info.log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>

<!--错误日志-->
<appender name="errorLog" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="logs\error.log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="debugLog" />
<appender-ref ref="infoLog"/>
<appender-ref ref="errorLog" />
</root>
</log4net>
而Spring的配置,我就不罗嗦了。

注: Spring使用Common Logging (ver 2.0)的类库一直没有搞定,哪位大虾搞定了,麻烦告诉我一声

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【WPF/C#】拖拽Image图片控件发布时间:2022-07-13
下一篇:
c#语法糖代码——继承中构造函数的问题,this&amp;base比较发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap