行业资讯 2025年08月6日
0 收藏 0 点赞 326 浏览 2452 个字
摘要 :

文章目录 1.日志记录级别 2.如何设置日志级别 2.1 在 log4j2.properties 中设置日志级别 2.2 在 log4j2.xml 中设置日志级别 3.日志级别如何工作? 4.Log4j 日志记录级……




  • 1.日志记录级别
  • 2.如何设置日志级别
    • 2.1 在 log4j2.properties 中设置日志级别
    • 2.2 在 log4j2.xml 中设置日志级别
  • 3.日志级别如何工作?
  • 4.Log4j 日志记录级别示例

在本 Log4j 2 教程中,我们将讨论 Log4j 的日志记录级别。这些日志记录级别用于控制添加到日志语句中的信息量和类型。

许多分析工具,如 Splunk,可以根据对日志级别的过滤器来生成报告。

1.日志记录级别

在 Log4j 中,日志记录级别是 org.apache.log4j.Level 类的实例。Log4j 具有以下日志记录级别。

Log 等级 描述 Integer 值
ALL ALL用于打开所有级别的日志。配置此级别后,其他级别(包括自定义级别)将不予考虑。 Integer.MAX_VALUE
TRACE TRACE在版本1.2中引入,为调试级别日志添加了更多信息。请注意,此级别的日志量可能会非常大。 600
DEBUG DEBUG用于记录精细级别的信息事件,对于调试应用程序非常有用。在生产环境中,此级别通常会被关闭,直到需要打开以调试开发环境中不可重现的关键生产问题。 500
INFO INFO是生产环境中最常用的级别,用于记录粗粒度的信息消息,突出显示应用程序的进度。实时系统管理员会监视信息日志以确保系统正常运行。 400
WARN WARN表明应用程序可能会继续,但我们应该格外小心。通常,应用程序可以容忍警告消息,但应始终进行验证和检查。 300
ERROR ERROR表示发生严重错误,必须立即进行调查。它意味着应用程序遇到了非常不理想的状态。例如数据库不可用或格式化输入不正确等。 200
FATAL FATAL表示非常严重的错误,甚至可能导致应用程序崩溃。 100
OFF OFF表示不记录任何日志。 0

请注意,默认情况下 Log4j 将根记录器分配给 Level.ERROR。

2.如何设置日志级别

2.1 在 log4j2.properties 中设置日志级别

以下示例将根记录器的日志级别设置为 DEBUG,并将 ‘com.howtodoinjava.web.controller’ 包的日志级别设置为 INFO。

rootLogger.level = debug
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#以INFO级别记录 \'com.howtodoinjava.web.controller\'包日志
logger.com.howtodoinjava.web.controller=INFO, consoleLogger

更多信息:Log4j2.properties 配置示例。

2.2 在 log4j2.xml 中设置日志级别

<Configuration status=\"warn\">
    <Appenders>
        <!-- Console appender 配置-->
        <Console name=\"console\" target=\"SYSTEM_OUT\">
            <PatternLayout
                pattern=\"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\" />
        </Console>
    </Appenders>
    <Loggers>
        <!-- Root logger 指向 console appender -->
        <Root level=\"DEBUG\" additivity=\"false\">
            <AppenderRef ref=\"console\" />
        </Root>
    </Loggers>
</Configuration>

更多信息:Log4j2.xml 配置示例。

3.日志级别如何工作?

在 log4j 中,日志级别根据分配给它们的整数值进行排序,如第一个表格所示。

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

如果将日志级别设置为 ‘X’,则任何具有 ‘level <= X’(较小范围)的日志请求将在日志文件中记录。所有具有更高顺序的请求将不会被记录。

例如,如果将日志级别设置为 INFO,则应用程序将记录具有 INFO、WARN、ERROR 和 FATAL 范围的消息。所有 DEBUG 和 TRACE 日志不会添加到日志文件中。

这个图表中,垂直标题显示 LogEvent 的级别,而水平标题显示与适当的日志配置相关联的 Log 级别。交集标识是否允许 LogEvent 通过进一步的处理(YES)或丢弃(NO)。Log4j 日志记录级别

4.Log4j 日志记录级别示例

以下是一个 Java 程序,演示了 log4j 中日志级别的使用。该示例将日志级别设置为 INFO,然后记录不同级别的多个消息。根据我们的讨论,该程序将打印所有除 DEBUG 和 TRACE 以外的日志消息。

import org.apache.log4j.*;
public class LogLevelExample
{
   private static Logger logger = Logger.getLogger(LogLevelExample.class);
   public static void main(String[] args) {
      logger.setLevel(Level.INFO);
      logger.trace(\"Trace Message!\");
      logger.debug(\"Debug Message!\");
      logger.info(\"Info Message!\");
      logger.warn(\"Warn Message!\");
      logger.error(\"Error Message!\");
      logger.fatal(\"Fatal Message!\");
   }
}

程序输出:

Info Message!
Warn Message!
Error Message!
Fatal Message!

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9549.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号