zoukankan      html  css  js  c++  java
  • Log4net配置

    1.新建log4net配置文件,名字随便起,位置随便放(这里我是/Configs/testlog4.config)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
    
      <log4net>
        <logger name="MLogError">
          <level value="ERROR" />
          <appender-ref ref="MErrorAppender" />
        </logger>
        <logger name="MLogInfo">
          <level value="INFO" />
          <appender-ref ref="MInfoAppender" />
        </logger>
        <appender name="MErrorAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="LogsErrorerror.txt" />
          <param name="DatePattern" value="yyyyMMdd"/>
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="MaximumFileSize" value="1MB" />
          <param name="RollingStyle" value="Size" />
          <param name="StaticLogFileName" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
          </layout>
        </appender>
        <appender name="MInfoAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="LogsInfo" />    
        <!--多少条写入-->
        <bufferSize VALUE="0" />
    <!-- True/false,默认为true。当文件存在时,是否在原文件上追加内容。 --> <param name="AppendToFile" value="true" /> <!-- 备份日志数目,默认为0。在CountDirection为负数时有效。 --> <param name="MaxSizeRollBackups" value="100" /> <!-- 当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节) --> <param name="MaxFileSize" value="10240" /> <!--StaticLogFileName如果为true,则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。如果为false,则文件名取File+DatePattern。 --> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyy-MM\yyyyMMdd&quot;.log&quot;" /> <!-- 创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite --> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p %n异常内容:%m%n" /> </layout> </appender> </log4net> </configuration>

    2.新建TestHelper类封装下

     public class TestHelper
        {
            public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("MLogInfo");
            public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("MLogError");
    
            /// <summary>
            /// 普通的文件记录日志
            /// </summary>
            /// <param name="info"></param>
            public static void WriteLog(string info)
            {
                if (loginfo.IsInfoEnabled)
                {
                    loginfo.Info(info);
                }
            }
            /// <summary>
            /// 错误日志
            /// </summary>
            /// <param name="info"></param>
            /// <param name="se"></param>
            public static void WriteLog(string info, Exception se)
            {
                if (logerror.IsErrorEnabled)
                {
                    logerror.Error(info, se);
                }
            }
    
        }

    3.配置AssemblyInfo.cs文件

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Configs/testlog4.config", Watch = true)]

    4.设置testlog4.config文件属性(设为始终复制,不然发布时候拷不过去)

     5.调用

     TestHelper.WriteLog("adasdasdasdas");

     6.日志展示

     

    7.配置说明

    %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
    %n(new line):換行
    %d(datetime):输出当前语句运行的时刻
    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
    %t(thread id):当前语句所在的线程ID
    %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
    %c(class):当前日志对象的名称
    %L:输出语句所在的行号
    %F:输出语句所在的文件名
    %-数字:表示该项的最小长度,如果不够,则用空格填充

    log4j中%5p的含义
    因为日志级别分别有error,warn,info,debug,fatal5种,有些是5个字母的,有些是4个字母的,如果直接写%p就会对不齐,%-5p的意思是日志级别输出左对齐,右边以空格填充,%5p的意思是日志级别输出右对齐,左边以空格填充。

    1、直接%p

     

    2、%-5p

    3、%5p

  • 相关阅读:
    c语言知识
    数字地与模拟地
    C语言实现顺序表(增删)
    传统数据库、Nosql数据库与云数据库区别?
    大数据处理架构如何
    warning: implicit declaration of function 'func1' [-Wimplicit-function-declaration]
    window10创建virtualenv虚拟环境
    二叉树的实现以及三种遍历方法--代码
    损失函数--KL散度与交叉熵
    市场回测与对冲套利
  • 原文地址:https://www.cnblogs.com/xinyibufang/p/10535691.html
Copyright © 2011-2022 走看看