在C#应用中使用Common Logging日志接口
2016-12-26 14:50
281 查看
我在C#应用中一般使用log4net来记录日志,但如果项目中有个多个工程,那么没有工程都需要引用log4neg,感觉很不爽。不过今日在开spring.net的时候,看到了有个通用日志接口CommonLogging,可以很好的解决项目中多个工程的问题。由于CommonLogging是一个日志的基础设施接口,因此更换到其他日志框架,也不需要修改程序代码。
因为我不愿意将所有的配置参数都写入到app.config.xml,那样会把配置文件弄得很大、很乱。我的思路是:在配置文件中加载CommonLogging,通过CommonLogging的Adapter的参数制定Log4net文件的位置,而spring的配置文件可以通过应用程序加载或者在app.config.xml中加载都可以。
CommonLogging的配置如下:(ver:1.2.0.0,该版本有spring决定)
而Log4net的配置也终于实现了将错误日志和业务日志分离的功能。具体配置如下:(ver:1.2.10)
因为我不愿意将所有的配置参数都写入到app.config.xml,那样会把配置文件弄得很大、很乱。我的思路是:在配置文件中加载CommonLogging,通过CommonLogging的Adapter的参数制定Log4net文件的位置,而spring的配置文件可以通过应用程序加载或者在app.config.xml中加载都可以。
CommonLogging的配置如下:(ver:1.2.0.0,该版本有spring决定)
<? 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 > |
<? 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-ddHH: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-ddHH: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
>
相关文章推荐
- 转 C#开发微信门户及应用(1)--开始使用微信接口
- C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现
- C#开发微信门户及应用(1)--开始使用微信接口
- C#开发微信门户及应用(1) 微信接口使用
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- C#开发微信门户及应用(1)--开始使用微信接口(转)
- C#开发微信门户及应用(1)--开始使用微信接口
- C#开发微信门户及应用(1)--开始使用微信接口
- c#使用微信接口开发微信门户应用
- C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现
- C#开发微信门户及应用(1)--开始使用微信接口
- C#开发微信门户及应用(42)--使用Autofac实现微信接口处理的控制反转处理
- (转)C#开发微信门户及应用(1)--开始使用微信接口
- C#接口的使用场合,接口应用
- C#开发微信门户及应用(1)--开始使用微信接口
- c#使用微信接口开发微信门户应用
- c#使用微信接口开发微信门户应用中微信消息的处理和应答
- C#开发微信门户及应用(1)--开始使用微信接口
- C#开发微信门户及应用(1)--开始使用微信接口
- [转]在C#中使用MSHTML的高级支持接口