初探Log4j2-yaml配置坑
不思进取太久了,想捣鼓点新东西,刚好在log4j这一块有解决不了的问题,想换log4j2试试;以前也没有写过yaml,就想着顺便试试新的配置。
笔者使用maven构建Demo, 按官网Configuration with YAML的说明加入依赖
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.8.6</version> </dependency>
兴致勃勃写了个最简单的main方法,打印info级别的日志,跑起来却一直报:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
找不到log4j2的配置文件,笔者检查了几遍,配置文件明明已经编译成功,怎么会找不到呢?
网上找了很多相关的文章,都没发现有出现过类似的问题。。。
不能卡在这是吧,太想试试log4j2了, Debug源代码吧,这一Debug,我勒个去啊,jackson-dataformat-yaml这个依赖包还有些依赖没被引入,com.fasterxml.jackson.databind.ObjectMapper 在源文件里就就是红的...
导致YamlConfigurationFactory中的构造方法无法正常加载com.fasterxml.jackson.databind.ObjectMapper的Class...
private static final String[] dependencies = new String[] { "com.fasterxml.jackson.databind.ObjectMapper", "com.fasterxml.jackson.databind.JsonNode", "com.fasterxml.jackson.core.JsonParser", "com.fasterxml.jackson.dataformat.yaml.YAMLFactory" }; private final boolean isActive; public YamlConfigurationFactory() { for (final String dependency : dependencies) { if (!Loader.isClassAvailable(dependency)) { LOGGER.debug("Missing dependencies for Yaml support"); isActive = false; return; } } isActive = true; }
isActive的结果为false, YamlConfigurationFactory的getConfiguration()获取配置永远为null
@Override public Configuration getConfiguration(final LoggerContext loggerContext, final ConfigurationSource source) { if (!isActive) { return null; } return new YamlConfiguration(loggerContext, source); }
解决方法:
加入jackson-databind依赖包
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.6</version> </dependency>
下一篇: 一些不常用的php系统类函数
推荐阅读
-
详解多页应用 Webpack4 配置优化与踩坑记录
-
spring boot开发遇到坑之spring-boot-starter-web配置文件使用教程
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用
-
spring boot开发遇到坑之spring-boot-starter-web配置文件使用教程
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用
-
详解Spring Cloud Feign 熔断配置的一些小坑
-
pycharm+PyQt5+python最新开发环境配置(踩坑)
-
ansible动态Inventory主机清单配置遇到的坑
-
详解Spring Cloud Feign 熔断配置的一些小坑
-
详解配置Django的Celery异步之路踩坑