log4j日志打印

    最近在分析项目响应时延时,使用了很多打印日志的技巧,下面总结一下。

1、打印总的日志。

       总日志是说,在系统出现任何异常或错误情况,都将异常打印到固定文件中。实现方式:

                1、实现类中,添加日志对象

private static final Logger LOGGER = LoggerFactory.getLogger(SpeechManagerImpl.class);

                 getLogger里面填类名。

                2、log4j.xml里加入这一段

<appender name="mainlog" class="org.apache.log4j.DailyRollingFileAppender">
   <param name="Encoding" value="UTF-8" />
   <param name="File" value="/home/cxb/logs/smartchome.log" />
   <param name="DatePattern" value="'-'yyyy-MM-dd" />
   <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
         value="%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p [%t] (%F\:%L) - %m%n" />
   </layout>
</appender>
<root>
   <priority value="ERROR" />
   <appender-ref ref="mainlog" />
   <appender-ref ref="console" />
</root>

                  主要日志级别设置为ERROR,说明只打error级别日志。这时,java代码中,只有error或更严重的才会打印出。

2、打印模块化日志。

                这个也是比较常用的,用于将关键模块的日志单独打印到文件中。实现方式:

                 1、实现类中,添加日志对象

private static final Logger log = LoggerFactory.getLogger("nlptransaction");

                   2、log4j中加入以下一段

<category additivity="false" name="nlptransaction">
    <level value="INFO"/>
    <appender-ref ref="nlptranslog"/>
</category>
<appender name="nlptranslog" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="Encoding" value="UTF-8" />
    <param name="File" value="/home/cxb/logs/nlptrans.log" />
    <param name="DatePattern" value="'-'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p [%t] (%F\:%L) - %m%n"/>
    </layout>
</appender>

                  这样,在需要单独打印的地方,就实现了单独的日志打印。 

猜你喜欢

转载自blog.csdn.net/a1165117473/article/details/81082662