【Java】动态日志级别

目录

一、基础知识

二、系统各环境日志级别配置

三、只打印某一个级别的配置


一、基础知识

在Java中,日志记录是一个重要的组成部分,它帮助开发者理解和调试程序的运行情况。不同的日志级别允许开发者根据需要输出不同详细程度的日志信息。Log4j是Java中广泛使用的日志框架之一,它定义了一系列的日志级别,以便于控制日志输出。

  1. OFF: 这是最高级别,用于关闭所有日志记录。如果配置为OFF,则日志记录器将忽略所有日志消息。

  2. FATAL: 表示非常严重的错误事件,这些错误会导致应用程序终止执行。FATAL是用于记录极端情况的日志,比如系统崩溃或者关键组件无法加载等。

  3. ERROR: 表示错误事件,但应用程序可能仍然能够继续运行。ERROR级别用来记录异常或者其他重要的错误事件,这些错误需要被记录和监控,但不一定需要立即处理。

  4. WARN: 表示有潜在的有害状况。WARN级别用于提醒开发者注意那些可能会导致问题的情况,但并不一定立即影响系统的正常运行。

  5. INFO: 表示突出显示应用程序的正常运行过程中的事件。INFO级别可以用来记录程序运行的关键节点,帮助理解程序的运行流程,但不应该过于详细。

  6. DEBUG: 表示细粒度的信息事件,主要用于开发过程中。DEBUG级别用于记录程序中的详细操作,比如函数调用、循环迭代等,主要用于调试目的。

  7. TRACE: 表示非常详细的跟踪信息,一般在DEBUG级别之下。TRACE级别用于记录系统的详细运行轨迹,通常用于问题排查时需要的非常详细的日志记录。

  8. ALL: 这是最低级别,用于打开所有日志记录。配置为ALL级别会记录所有级别的日志信息。

通常情况下,生产环境中会将日志级别设置为INFO或WARN,以记录关键信息和潜在错误,而不会记录过多的调试信息,以免产生大量的日志文件。开发和测试环境中,可能会使用DEBUG或TRACE级别,以获取更多的程序运行信息来帮助调试。

在配置日志级别时,只有高于或等于所设置级别的日志消息才会被记录。例如,如果设置级别为WARN,那么ERROR和FATAL级别的消息会被记录,而INFO、DEBUG和TRACE级别的消息则不会被记录。

Log4j建议通常只使用ERROR、WARN、INFO、DEBUG这四个级别,因为这四个级别已经足够涵盖大部分需要记录的信息。

二、系统各环境日志级别配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>

    <property name="log.path" value="/app/logs/niubi/tiancai"/>

    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--按天生成日志-->
    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${log.path}/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}-%i.log
            </FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--每个文件30MB-->
                <maxFileSize>30MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>
    
    <springProfile name="dev,test">
        <root level="INFO">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </root>
    </springProfile>
    <springProfile name="prod">
        <root level="ERROR">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </root>
    </springProfile>

</configuration>

三、只打印某一个级别的配置

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


    <logger name="com.xx.xxx" level="debug"/>
    <logger name="org.mybatis" level="info"/>
    <logger name="org.apache.ibatis" level="info"/>
    <logger name="java.sql" level="info"/>
    <logger name="org.springframework" level="info"/>
    <logger name="springfox.documentation" level="info"/>
    <logger name="org.apache.zookeeper" level="info"/>

    <logger name="org.apache.http.wire" level="warn"/>

    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>
</configuration>

有用请点赞,养成良好习惯!

疑问、交流、鼓励请留言!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值