log4net小记

log4net添加:

Install-Package Log4net

log4net.config配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
 <!--站点日志配置部分-->
  <log4net>
    <!--Appender的组件来定义输出介质-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志路径-->
      <param name="File" value="D:\App_Log\log"/>
       <!--日志文件名追加日期-->
      <param name="DatePattern" value="-yyyyMMdd&quot;.txt&quot;"/>
      <!--是否向文件中追加日志-->
      <param name="AppendToFile" value="true"/>
      <!--日志文件名是否固定不变-->
      <param name="StaticLogFileName" value="false"/>
     
      <!--【变换的形式】为日期,这种情况下每天只有一个日志-->
      <!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义-->
      <param name="RollingStyle" value="Date"/>     
     
      <!--【变换的形式】为日志大小-->
      <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
      <!--<RollingStyle value="Size"/>-->  
      <!--每天记录的日志文件个数,与maximumFileSize配合使用-->
      <!--<MaxSizeRollBackups value="10"/>-->
      <!--每个日志文件的最大大小,可用的单位:KB|MB|GB,不要使用小数,否则会一直写入当前日志-->
      <!--<maximumFileSize value="20MB"/>-->
      
      <!--layout配置说明:
        %m (message):输出的日志消息;
        %n (newline):换行;
        %d (datetime):输出当前语句运行的时刻;
        %r (runtime):输出程序从运行到执行到当前语句时消耗的毫秒数;
        %t (threadid):当前语句所在的线程ID ;
        %p (priority):日志的当前日志级别;
        %c (class):当前日志对象的名称;
        %L:输出语句所在的行号;
        %F:输出语句所在的文件名; 
        %-10:表示最小长度为10,如果不够,则用空格填充;
        -->
      <layout type="log4net.Layout.PatternLayout">
        <!--exp:2017-02-07 11:13:18,066 [9] DEBUG TestAutofac.Program (29)- 这是一个Debug测试-->
        <param name="ConversionPattern" value="%date [%t] %-5p %c (%L)- %m%n"/>
      </layout>
    </appender>
    
    <!-- 控制台前台显示日志 -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="Green" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
      </layout>

      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="Info" />
        <param name="LevelMax" value="Fatal" />
      </filter>
    </appender>

    <root>
      <!--(高)OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL(低)-->
      <level value="all"/>
      <appender-ref ref="ColoredConsoleAppender"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>
View Code

log4net注册:

private static void InitLog4Net()
        {
            var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
            log4net.Config.XmlConfigurator.ConfigureAndWatch(logCfg);
        }

log4net测试:

static void Main(string[] args)
        {
            InitLog4Net();//注册

            var logger = LogManager.GetLogger(typeof(Program));
            logger.Info("消息");
            logger.Warn("警告");
            logger.Error("异常");
            logger.Fatal("错误");
            logger.Debug("这是一个Debug测试。");

            LogManager.GetLogger("ERROR").Error("tt");

            Console.ReadLine();
        }

 

posted @ 2017-02-07 12:00  狂想NICE  阅读(164)  评论(0编辑  收藏  举报