• Common Logging & log4net


    common logging是一个通用日志接口,log4net是一个更强大的具体实现,另外可用不同的实现,如EntLib的日志、NLog等。

    Common.Logging.dll

    Common.Logging.Log4Net.dll  (适配器)

     log4net.dll

      class Program
        {
            
    //public static ILog log = LogManager.GetCurrentClassLogger();
            public static ILog log = LogManager.GetLogger("Program");
            
    static void Main(string[] args)
            {
                
    //DEBUG < INFO < WARN < ERROR < FATAL

                
    if (log.IsDebugEnabled)
                {
                    log.Debug(
    "Debug info");
                }

                log.Info(
    "info info");
                log.Warn(
    "Warn info");
                log.ErrorFormat(
    "Error {0}","info");
                log.Fatal(
    "fatal info");
                Console.WriteLine(
    "done");

                Console.ReadLine();
            }
        }

     config file

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

        
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
        
        
      
    </configSections>
      
    <common>
        
    <!--[DEBUG < INFO < WARN < ERROR < FATAL]--> 
        
    <logging>
          
          
    <!--<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
            <arg key="level" value="WARN" />
            <arg key="showLogName" value="true" />
            <arg key="showDataTime" value="true" />
            <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
          </factoryAdapter>
    -->

         
         
            
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
              
    <!--FILE
                  FILE-WATCH
                  INLINE
                  EXTERNAL
    -->
              
    <arg key="configType" value="INLINE" />          
              
              
    <!--<arg key="configType" value="FILE-WATCH" />
              <arg key="configFile" value="~/log4net.config" />
    -->
            
    </factoryAdapter>    
          
        
    </logging>
      
    </common>
      
      
    <log4net>
        
    <!--<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
          </layout>
        </appender>
    -->

        
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender, log4net">
          
    <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
          
    <param name="File" value="logs/" />
          
    <param name="StaticLogFileName" value="false" />
          
    <param name="DatePattern" value="yyyy-MM-dd.'log'" />
          
    <param name="AppendToFile" value="true" />
          
    <param name="MaxSizeRollBackups" value="10" />
          
    <param name="MaximumFileSize" value="5MB" />
          
    <param name="RollingStyle" value="Date" />
          
    <!--Size ==- Date-->
          
    <layout type="log4net.Layout.PatternLayout">
            
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
          
    </layout>
        
    </appender>
        
        
    <root>
          
    <level value="DEBUG" />
          
    <appender-ref ref="RollingLogFileAppender" />
        
    </root>
        
        
    <logger name="MyApp.DataAccessLayer">
          
    <level value="DEBUG" />      
        
    </logger>

        
    <!--root>
            <level value="error" />
            <appender-ref ref="RollingLogFileAppender" />
        </root
    -->

        
    <!-- ALL DEBUG INFO WARN ERROR FATAL OFF [DEBUG < INFO < WARN < ERROR < FATAL] 大范围 到 小范围-->
        
    <logger name="Spring">
          
    <level value="ERROR" />
          
    <appender-ref ref="RollingLogFileAppender" />
        
    </logger>

        
    <logger name="APP" debug="false">
          
    <level value="Error" />
          
    <appender-ref ref="RollingLogFileAppender" />
        
    </logger>

        
    <logger name="Game" debug="false">
          
    <level value="all" />
          
    <appender-ref ref="RollingLogFileAppender" />
        
    </logger>

        
    <logger name="Web" debug="false">
          
    <level value="ERROR" />
          
    <appender-ref ref="RollingLogFileAppender" />
        
    </logger>

        
      
    </log4net>
      
    </configuration>
  • 相关阅读:
    Redis实战——redis主从备份和哨兵模式实践
    Shiro的Subject和Sessoin的创建
    Shiro配置cookie以及共享Session和Session失效问题
    Shiro的校验Session是否过期处理的过程
    Maven父级pom.xml配置文件
    我的Linux之路——虚拟机linux与主机之间的文件传送
    Redis实战——安装问题汇总
    我的Linux之路——实现虚拟机VMware上linux与windows互相复制与粘贴
    Redis实战——phpredis扩展安装
    推荐一个面向对象的javascript框架mootools
  • 原文地址:https://www.cnblogs.com/wucg/p/1784924.html
Copyright © 2020-2023  润新知