zoukankan      html  css  js  c++  java
  • 在C#应用中使用Common Logging日志接口

    在C#应用中使用Common Logging日志接口

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

    复制代码

    
     

    <?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="logsdebug.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="logsinfo.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="logserror.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)的类库一直没有搞定,哪位大虾搞定了,麻烦告诉我一声

  • 相关阅读:
    Java集合和数组的区别
    二分法查找
    功能模块划分的原则及方法
    CentOS 6.5 开机启动指定服务
    CentOS 6.5配置mysql
    CentOS 6.5安装Tcpreplay
    CentOS6.5 常用命令
    CentOS6.5 安装ntopng-1.2.0
    【转】CentOS安装PF_RING(虚拟机)
    CentOS查询 杀死进程
  • 原文地址:https://www.cnblogs.com/grj001/p/12222998.html
Copyright © 2011-2022 走看看