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

  • 相关阅读:
    Chrome cookies folder
    Fat URLs Client Identification
    User Login Client Identification
    Client IP Address Client Identification
    HTTP Headers Client Identification
    The Personal Touch Client Identification 个性化接触 客户识别
    购物车 cookie session
    购物车删除商品,总价变化 innerHTML = ''并没有删除节点,内容仍存在
    453
    购物车-删除单行商品-HTMLTableElement.deleteRow()
  • 原文地址:https://www.cnblogs.com/xinyibufang/p/10535691.html
Copyright © 2011-2022 走看看