码迷,mamicode.com
首页 > 其他好文 > 详细

谈谈日志

时间:2020-02-11 11:32:55      阅读:36      评论:0      收藏:0      [点我收藏+]

标签:coder   max   att   conf   pre   示例   ring   encoding   cat   

谈谈日志:

一般而言,一个接口或者一段程序,其入口要有日志,记录传入的数据是什么;
部分重要的处理逻辑要有日志;
程序出口也要有日志,记录其最终的处理结果。

这样在解决生产上的问题时,方便定位问题。比凭空想象的好。

还有一点就是生产环境上严禁使用System.out输出,性能很低。原因是其输出会导致线程等待。

而使用Logger在输出日志时是异步的。

 

在记录日志时不要用+号连接日志内容 比如log.info("ddd"+abc);

而要用log.info("ddd{}",abc);这样可以减少创建的字符串对象。

 

一个spring boot的日志配置示例如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 应用名称 -->
    <springProperty scope="context" name="app_name" source="spring.application.name"/>
    <!-- 日志文件保存路径 -->
    <property name="log_home" value="logs" />

    <!-- 控制台日志:输出全部日志到控制台 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - ip=%X{ip} - %m - duration=%X{duration}ms - method=%X{method}%n</pattern>
        </encoder>
    </appender>

    <!-- 文件日志:输出指定日志到文件 -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_home}/${app_name}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - ip=%X{ip} - %m - duration=%X{duration}ms - method=%X{method}%n</pattern>
        </encoder>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_home}/${app_name}_error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="consoleLog" />
        <appender-ref ref="fileInfoLog" />
        <appender-ref ref="fileErrorLog" />
    </root>
</configuration>

 

谈谈日志

标签:coder   max   att   conf   pre   示例   ring   encoding   cat   

原文地址:https://www.cnblogs.com/jzzgci/p/12294095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!