文章目录 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)。
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!
还没有评论呢,快来抢沙发~