美文网首页
spring boot logback日志配置参考

spring boot logback日志配置参考

作者: liurongming | 来源:发表于2017-08-13 22:36 被阅读0次

    spring boot 的日志配置:
    可以打印出sql和日期归档并压缩及历史时长设置等,可以直接用于生产环境。
    当然还可以加上一些颜色配置,根据日志的级别打印不同的颜色效果,spring boot默认配置,在IntenliJ IDEA的控制器,可以输出漂亮的日志效果。建议,不要配置颜色方案,因为在不同的编辑器对其的支持程度不太一样,后期可能引发乱码问题!

    配置目录以及效果参考:

    image.png image.png
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration> 
        <!-- 项目的appid -->
        <property name="APP_ID" value="com.prettylearn.pretty.users" />
        <property name="LOG_PATH" value="logs"></property>
        
        <!-- 控制台输出 -->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
            </encoder>
        </appender>
        
        <!-- 文件输出 -->
        <appender name="FILE_LOG"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
            </filter>
            <file>${LOG_PATH}/${APP_ID}/access.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${APP_ID}/access.log.%d{yyyy-MM-dd}.zip
                </fileNamePattern>
                <maxHistory>10</maxHistory>
            </rollingPolicy>
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <!-- 调试日志 -->
        <appender name="FILE_DEBUG"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <file>${LOG_PATH}/${APP_ID}/access_debug.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${APP_ID}/access_debug.log.%d{yyyy-MM-dd}.zip
                </fileNamePattern>
                <maxHistory>10</maxHistory>
            </rollingPolicy>
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
        
        <!-- 正常日志 -->
        <appender name="FILE_INFO"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <file>${LOG_PATH}/${APP_ID}/access_info.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${APP_ID}/access_info.log.%d{yyyy-MM-dd}.zip
                </fileNamePattern>
                <maxHistory>10</maxHistory>
            </rollingPolicy>
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <!-- 警告日志 -->
        <appender name="FILE_WARN"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <file>${LOG_PATH}/${APP_ID}/access_warn.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${APP_ID}/access_warn.log.%d{yyyy-MM-dd}.zip
                </fileNamePattern>
                <maxHistory>10</maxHistory>
            </rollingPolicy>
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
        
        <!-- 错误日志 -->
        <appender name="FILE_ERROR"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <file>${LOG_PATH}/${APP_ID}/access_error.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${APP_ID}/access_error.log.%d{yyyy-MM-dd}.zip
                </fileNamePattern>
                <maxHistory>10</maxHistory>
            </rollingPolicy>
            <encoder charset="UTF-8">
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_LOG" />
        </appender>
        <appender name="ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_LOG" />
        </appender>
        <appender name="ASYNC_LOG_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_DEBUG" />
        </appender>
        <appender name="ASYNC_LOG_INFO" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_INFO" />
        </appender>
        <appender name="ASYNC_LOG_WARN" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_WARN" />
        </appender>
        <appender name="ASYNC_LOG_ERROR" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>512</queueSize>
            <appender-ref ref="FILE_ERROR" />
        </appender>
        
        <root level="INFO">
            <!-- appender referenced after it is defined -->
            <appender-ref ref="STDOUT" />
            <appender-ref ref="ASYNC_LOG" />
            <appender-ref ref="ASYNC_LOG_DEBUG" />
            <appender-ref ref="ASYNC_LOG_INFO" />
            <appender-ref ref="ASYNC_LOG_WARN" />
            <appender-ref ref="ASYNC_LOG_ERROR" />
        </root>
        <logger name="org.springframework" level="INFO" />
    
        <!-- mybatis日志打印 -->
        <logger name="com.ibatis" level="DEBUG" />
        <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
        <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
        <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"
                level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
        <logger name="java.sql.Connection" level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
        <logger name="java.sql.Statement" level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
        <logger name="java.sql.PreparedStatement" level="DEBUG">
            <appender-ref ref="STDOUT" />
        </logger>
            <!-- 具体的mybatis目录 -->
        <logger name="com.prettylearn.pretty.users.dao" level="DEBUG"/>
    </configuration>
    

    相关文章

      网友评论

          本文标题:spring boot logback日志配置参考

          本文链接:https://www.haomeiwen.com/subject/oyfyrxtx.html