谈谈日志

回眸只為那壹抹淺笑 提交于 2020-02-11 11:06:51

谈谈日志:

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

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

还有一点就是生产环境上严禁使用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>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!