以下內(nèi)容適用于 log4j 2 之前的版本
常用附加器
| 附加器 | 備注 |
|---|---|
| org.apache.log4j.ConsoleAppender | 輸出到控制臺 |
| org.apache.log4j.FileAppender | 輸出到文件 |
| org.apache.log4j.RollingFileAppender | 當日志文件到達指定大小時產(chǎn)生一個新的日志文件 |
| org.apache.log4j.DailyRollingFileAppender | 每天產(chǎn)生一個新的日志文件 |
日志級別
以下日志等級輸出范圍從大到小排列
| 等級 | 備注 |
|---|---|
| ALL | 輸出全部等級的日志 |
| TRACE | 輸出追蹤信息 |
| DEBUG | 輸出調(diào)試信息 |
| INFO | 輸出提示信息 |
| WARM | 輸出警告信息 |
| ERROR | 輸出錯誤信息 |
| FATAL | 輸出致命信息 |
| OFF | 關(guān)閉所有日志輸出 |
日志格式
| 格式 | 備注 |
|---|---|
| %m | 日志信息 |
| %p | 日志等級,優(yōu)先級 |
| %r | 應用啟動到日志輸出的時間(毫秒) |
| %c | 日志所屬的類,一般是所在類的全限定名 |
| %t | 輸出日志的線程名 |
| %n | 輸出回車換行符 |
| %d | 輸出時間日期默認格式ISO8601,也可以自定義格式,例如:%d{yyyy-MM-dd HH:mm:ss} |
| %l | 日志輸出的位置,類名,在代碼中的行數(shù) |
log4j.properties 配置文件
基本格式
log4j.rootLogger=[日志等級], [自定義附加器名]...
log4j.appender.自定義附加器名=[附加器]
log4j.appender.自定義附加器名.layout= 格式化輸出日志Layout,常用org.apache.log4j.PatternLayout
log4j.appender.自定義附加器名.layout.ConversionPattern=輸出格式,例如:%d %p [%c] - %m%n
例如:
log4j.rootLogger = DEBUG, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} - %m%n
實例
Test.java
import org.apache.log4j.Logger;
public class Test {
private static final Logger log = Logger.getLogger(Test.class);
public static void main(String[] args) {
log.info("log info");
log.error("log error");
log.trace("log trace");
log.warn("log warn");
log.debug("log debug");
log.fatal("log fatal");
}
}
log4j.properties
log4j.rootLogger = DEBUG, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} - %m%n
輸出
[INFO] 2020-01-25 21:39:29 - log info
[ERROR] 2020-01-25 21:39:29 - log error
[WARN] 2020-01-25 21:39:29 - log warn
[DEBUG] 2020-01-25 21:39:29 - log debug
[FATAL] 2020-01-25 21:39:29 - log fatal