操作系统:Windows 10 x64
IDE:Spring Tool Suite 4, Version: 4.4.0.RELEASE, Build Id: 201909171436
Maven 项目,结构:
pom.xml 文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mk</groupId>
<artifactId>log4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
</project>
log4j.properties
# 全局输出级别
log4j.rootCategory=INFO, CONSOLE, LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 输出级别
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# 输出格式,参考:https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss:SSS} [%t] %-5p %C %L - %m%n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
# 输出到文件
log4j.appender.LOGFILE.File=G:/axis.log
# 是否追加原有内容的最后:true 追加,false 覆盖原有内容
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss:SSS} [%t] %-5p %C %L - %m%n
# Log4j 1.2 参考手册
# http://logging.apache.org/log4j/1.2/manual.html
# 注意:以下提供的信息是 Log4j 2 的参考文档,并不完全适用于 Log4j 1。
# Log4j 2 Compatibility with Log4j 1(Log4j 1 与 Log4j 2 的兼容性)
# https://logging.apache.org/log4j/2.x/manual/compatibility.html
# Migrating from Log4j 1.x(从 Log4j 1 迁移到 Log4j 2)
# https://logging.apache.org/log4j/2.x/manual/migration.html
# Usage(使用)
# https://logging.apache.org/log4j/2.x/manual/usage.html
# Appenders(输出源)
# https://logging.apache.org/log4j/2.x/manual/appenders.html
com.mk.Application
package com.mk;
import java.io.File;
import org.apache.log4j.Logger;
public class Application {
// 通常将日志记录器声明为静态的原因:https://logging.apache.org/log4j/2.x/manual/usage.html
private static final Logger logger = Logger.getLogger(Application.class);
public static void main(String[] args) {
try {
logger.trace("跟踪");
logger.debug("信息");
logger.info("信息");
logger.warn("警告");
logger.error("错误");
logger.fatal("致命");
String pathname = null;
File file = new File(pathname); // 制造一个异常
} catch (Exception e) {
// e.printStackTrace();
logger.error("Exception: ", e);
}
}
}
控制台输出:
2019.12.18 21:43:32:995 [main] INFO log4j.Application 15 - 信息
2019.12.18 21:43:32:997 [main] WARN log4j.Application 16 - 警告
2019.12.18 21:43:32:997 [main] ERROR log4j.Application 17 - 错误
2019.12.18 21:43:32:997 [main] FATAL log4j.Application 18 - 致命
2019.12.18 21:43:32:998 [main] ERROR log4j.Application 23 - Exception:
java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at log4j.Application.main(Application.java:20)
输出到文件:
相关参考: