• log4net 日志打印不全


    程序用的是log4net打印日志,偶现日志打印不全的问题,程序的log4net配置如下:

     1 <log4net>
     2     <root>
     3       <level value="ALL"/>
     4       <appender-ref ref="RollingLogFileAppender"/>
     5       <appender-ref ref="ConsoleAppender"/>
     6     </root>
     7     <!--日志记录器logger,可以有多个-->
     8     <logger name="fileLog">
     9       <level value="ALL"/>
    10       <appender-ref ref="ConsoleAppender"/>
    11       <appender-ref ref="RollingLogFileAppender"/>
    12     </logger>
    13     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    14       <layout type="log4net.Layout.PatternLayout">
    15         <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]- %m%n"/>
    16       </layout>
    17     </appender>
    18     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    19       <param name="File" value="logs/PekingVMS"/>
    20       <param name="AppendToFile" value="true"/>
    21       <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
    22       <param name="MaxSizeRollBackups" value="-1"/>
    23       <param name="Encoding" value="utf-8" />
    24       <!-- 每个文件的大小限制  -->
    25       <param name="MaximumFileSize" value="100MB"/>
    26       <param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock"/>
    27       <param name="StaticLogFileName" value="false"/>
    28       <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;"/>
    29       <param name="RollingStyle" value="Composite"/>
    30       <layout type="log4net.Layout.PatternLayout">
    31         <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]- %m%n"/>
    32       </layout>
    33     </appender>
    34   </log4net>

    PatternLayout 相关配置信息如下所示:

      -X号: X信息输出时左对齐;
     %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
     %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
     %r: 输出自应用启动到输出该log信息耗费的毫秒数
     %c: 输出日志信息所属的类目,通常就是所在类的全名
     %t: 输出产生该日志事件的线程名
     %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
     %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
     %%: 输出一个"%"字符
     %F: 输出日志消息产生时所在的文件名称
     %L: 输出代码中的行号
     %m: 输出代码中指定的消息,产生的日志具体信息
     %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
     
    日志只打印了时间,现场id,优先级,类名,后面就没有了,猜测可能是%x获取不到,导致后面的日志内容没有打印,所以改为:
    1 <layout type="log4net.Layout.PatternLayout">
    2         <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
    3       </layout>

    后来试了一下,发后面的日志打印成功。

  • 相关阅读:
    求自变量的取值范围时需要注意的角度
    求正弦型函数的解析式
    求三角形面积的最值[范围]
    三角函数对称性[奇偶性]
    2019届高三理科数学选择填空整理
    均值不等式使用变化
    破解正弦型函数参数的取值范围
    构造法求数列通项公式
    累乘法
    Centos中压缩(zip)和解压(unzip)命令
  • 原文地址:https://www.cnblogs.com/Johar/p/9245351.html
Copyright © 2020-2023  润新知