玩转新项目-日志配置

写在前沿--springboot支持很多种日志配置,目前基本是logback 日志配置

项目开发中写的一个logback配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!--  日志默认输出位置为tomcat目录下的bin目录 ../logs指tomcat下日志文件路径 -->

    <property name="log_path" value="../logs/ldx-manage-log" />

    <!--    控制台打印配置    -->

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>

            <pattern>${CONSOLE_LOG_PATTERN}}</pattern>

            <charset>utf-8</charset>

        </encoder>

    </appender>

    <!--    文件打印配置    -->

    <!--  ***************************  ERROR级别日志文件打印  ***************************  -->

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${log_path}/error/ldx-manage.log</file>

        <!-- 日志记录器的滚动策略 -->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!--  日志命名规则 %d{yyyy-MM-dd} 日期格式, %i 分页索引 -->

            <fileNamePattern>${log_path}/error/ldx-manage.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

            <!--  日志保留天数  -->

            <maxHistory>30</maxHistory>

            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <!-- 日志文件大小,超过后开始分页 -->

                <maxFileSize>10MB</maxFileSize>

            </timeBasedFileNamingAndTriggeringPolicy>

        </rollingPolicy>

        <!--  日志格式及编码  -->

        <encoder>

<!--            <pattern>${FILE_LOG_PATTERN}</pattern>-->

<!--            <pattern>%white(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%lsn) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)</pattern>-->

            <pattern>d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- %logger{50}[%M][%L] - %msg%n</pattern>

            <charset>utf-8</charset>

        </encoder>

        <!--      只记录error级别日志      -->

        <filter class="ch.qos.logback.classic.filter.LevelFilter">

            <level>error</level>

            <onMatch>ACCEPT</onMatch>

            <onMismatch>DENY</onMismatch>

        </filter>

    </appender>

    <!--  ***************************  允许输出的所有级别日志文件打印  ***************************  -->

    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${log_path}/all/ldx-manage.log</file>

        <!-- 日志记录器的滚动策略 -->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!--  日志命名规则 %d{yyyy-MM-dd} 日期格式, %i 分页索引 -->

            <fileNamePattern>${log_path}/all/ldx-manage.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

            <!--  日志保留天数  -->

            <maxHistory>30</maxHistory>

            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <!-- 日志文件大小,超过后开始分页 -->

                <maxFileSize>10MB</maxFileSize>

            </timeBasedFileNamingAndTriggeringPolicy>

        </rollingPolicy>

        <!--  日志格式及编码  -->

        <encoder>

<!--            <pattern>${FILE_LOG_PATTERN}</pattern>-->

            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- %logger{50}[%M][%L] - %msg%n</pattern>

            <charset>utf-8</charset>

        </encoder>

    </appender>

    <!-- ************************* 本地开发环境日志配置 *************************  -->

    <springProfile name="dev">

        <!--    trace, debug, info, warn, error, all, off    -->

        <root level="INFO">

            <appender-ref ref="CONSOLE"/>

            <appender-ref ref="ERROR_FILE"/>

            <appender-ref ref="ALL_FILE"/>

        </root>

    </springProfile>

    <!-- ************************* 服务器生产、测试环境日志配置 *************************  -->

    <springProfile name="!dev">

        <!--    trace, debug, info, warn, error, all, off    -->

        <root level="INFO">

            <appender-ref ref="CONSOLE"/>

            <appender-ref ref="ERROR_FILE"/>

            <appender-ref ref="ALL_FILE"/>

        </root>

    </springProfile>

</configuration>

————————————————

版权声明:本文为CSDN博主「_Harry_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/biangabiang/article/details/92790457

以上来自网上搜索到的logback日志的基本配置

然后我们怎么配置我们想要的配置

我们需要注意什么

1.对应线上的服务,我们无法时时刻刻去看对应实时日志输出,那么日志记录很关键

具体注意以下几点

A.日志尽可能输出全一点,因为项目小的,日志不会很多,但是日志对你问题排错,以及场景还原很有帮助。所以很多时候日志不单单是debug级别的记录,还有对应info的日常记录,用于记录一些功能,是否有返回值,简单点,一些用户登录时候的数据,比如登录ip,登录的时间,登录用的手机还是电脑,登录时候改变了什么动作,这些如果记录数据库,如果用insert记录,那么频繁页面操作,会给数据库带来不必要的开支,如果用update,那么会覆盖某一些有意义的操作动作,所以我们都可以采取日志进行记录,对应日志然后定时从服务器打包下来,这样我们可以分析数据排错,或者一些数据备份都是可以的

B.数据进行分页,一般是info日志输出比较多,需要进行分页,这样对于服务器线上查询比较有帮助,线上查询语句 一般是有 tail - f 对应日志.log 跟less 对应日志.log,这二种我比较推荐less,看的多全面,可以多试一下,挺有帮助的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容