- log4j 教程
- log4j - 首页
- log4j - 概述
- log4j - 安装
- log4j - 架构
- log4j - 配置
- log4j - 示例程序
- log4j - 日志方法
- log4j - 日志级别
- log4j - 日志格式
- log4j - 文件日志
- log4j - 数据库日志
- log4j 有用资源
- log4j - 常见问题解答
- log4j - 快速指南
- log4j - 有用资源
- log4j - 讨论
log4j - 日志级别
org.apache.log4j.Level 的级别。您也可以通过子类化Level类来定义自定义级别。
级别 | 描述 |
---|---|
ALL | 所有级别,包括自定义级别。 |
DEBUG | 指定细粒度的信息事件,这些事件对于调试应用程序最有用。 |
INFO | 指定以粗粒度级别突出显示应用程序进度的信息消息。 |
WARN | 指定可能存在危害的情况。 |
ERROR | 指定可能仍然允许应用程序继续运行的错误事件。 |
FATAL | 指定非常严重的错误事件,这些事件可能会导致应用程序中止。 |
OFF | 最高级别,用于关闭日志记录。 |
TRACE | 指定比 DEBUG 更细粒度的信息事件。 |
级别是如何工作的?
如果 p >= q,则具有级别 q 的 logger 中级别为 p 的日志请求是启用的。此规则是 log4j 的核心。它假设级别是有序的。对于标准级别,我们有 ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
以下示例显示了如何过滤所有 DEBUG 和 INFO 消息。此程序使用 logger 方法 setLevel(Level.X) 来设置所需的日志级别。
此示例将打印除 Debug 和 Info 之外的所有消息。
import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.setLevel(Level.WARN); log.trace("Trace Message!"); log.debug("Debug Message!"); log.info("Info Message!"); log.warn("Warn Message!"); log.error("Error Message!"); log.fatal("Fatal Message!"); } }
编译并运行LogClass程序时,将生成以下结果:
Warn Message! Error Message! Fatal Message!
使用配置文件设置级别
log4j 提供基于配置文件的级别设置,当您想要更改调试级别时,无需更改源代码。
以下是一个示例配置文件,它将执行与我们在上述示例中使用log.setLevel(Level.WARN)方法相同的任务。
# Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
现在让我们使用以下程序:
import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace("Trace Message!"); log.debug("Debug Message!"); log.info("Info Message!"); log.warn("Warn Message!"); log.error("Error Message!"); log.fatal("Fatal Message!"); } }
现在编译并运行上述程序,您将在/usr/home/log4j/log.out文件中获得以下结果:
Warn Message! Error Message! Fatal Message!
广告