依赖
本文主要围绕log4j2展开, 因此必然需要引入log4j2相关的核心依赖.
pom.xml
properties
dependency
注
log4j-core和log4j-api是套件, 使用相同版本, 如果只引入log4j-api会出现如下报错:
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
单独使用
使用默认配置
Logger logger = LogManager.getLogger("origin");
logger.error("test origin log4j");
小结
log4j2可以不用任何配置直接使用, 此时使用的是默认配置, 优点是使用方便, 缺点是不适应各样场景自定义.
自定义配置
log4j2的配置核心类为org.apache.logging.log4j.core.config.Configuration, 支持多种格式实现:
上一小节中就是使用了默认配置DefaultConfiguration.
本节使用常用的xml方式演示.
log4j2-origin.xml
设置jvm参数-Dlog4j2.configurationFile="X:\\xx\\log4j2-origin.xml" 打印日志 private static final Logger logger = LogManager.getLogger(TestOriginLog4j2.class);
@Test
public void testXmlConfiguration() {
logger.error("test origin log4j");
}
小结
配置文件生效顺序:
log4j2在程序启动时会检查系统配置项log4j2.configurationFile,如果此配置项被设置,则优先采用此配置项指定的配置文件去解析加载;如果1中的系统配置项没有被指定,则按下面优先级顺序加载。首先寻找classpath下的log4j2-test.properties文件寻找classpath下的 log4j2-test.yaml 或者 log4j2-test.yml 文件寻找classpath下的 log4j2-test.json 或者 log4j2-test.jsn文件寻找classpath下的 log4j2-test.xml 文件如果上述test文件没有找到,则尝试寻找classpath下的 log4j2.yaml 或者 log4j2.yml 文件寻找classpath下的 log4j2.json或者 log4j2.jsn文件寻找classpath下的 log4j2.xml 文件如果上述配置文件都无法找到,则日志直接输出到控制台
log4j2配置示例
filePattern="${baseLogDir}/app.log.%d{yyyy-MM-dd}">
filePattern="${baseLogDir}/debug.log.%d{yyyy-MM-dd}">
filePattern="${baseLogDir}/error.log.%d{yyyy-MM-dd}">
集成Slf4j
依赖
集成Spring
集成Spring Boot
springboot默认是用logback的日志框架的,所以需要排除logback,不然会出现jar依赖冲突的报错
推荐阅读
发表评论