您的位置:首页 > 编程语言 > C#

在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决定)

<?
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)

<?
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
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐