初探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安装
推荐阅读
-
详解配置Django的Celery异步之路踩坑
-
spring cloud配置高可用eureka时遇到的一些坑
-
微信JS-SDK接口权限验证配置遇到的坑及解决
-
详解Vue2.0配置mint-ui踩过的那些坑
-
eclipse弃坑记第一篇之在idea上配置Tomcat环境并创建Javaweb项目的详细步骤原创
-
Android 旧项目配置 Kotlin 踩到的坑
-
AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑
-
详解Nginx配置多站点需要踩的坑
-
详解多页应用 Webpack4 配置优化与踩坑记录
-
Android中WebView的基本配置与填坑记录大全