不思进取太久了,想捣鼓点新东西,刚好在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>
相关推荐
Log4j 2是Log4j的下一代版本,它引入了大量新特性,包括异步日志记录、可插拔的日志格式化器、动态配置以及丰富的API。相较于Log4j 1.x,Log4j 2不仅在性能上有所增强,而且在用户体验和安全性上都有显著改进。 2....
《深入理解log4j-api-2.17.1.jar与log4j-core-2.17.1.jar》 ...在实际项目中,合理地配置和使用Log4j2不仅可以提升日志管理的效率,还能在问题发生时快速定位,从而提高整体的开发效率和产品质量。
赠送jar包:jackson-dataformat-yaml-2.11.4.jar; 赠送原API文档:jackson-dataformat-yaml-2.11.4-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-data...
赠送jar包:jackson-dataformat-yaml-2.10.0.jar; 赠送原API文档:jackson-dataformat-yaml-2.10.0-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.10.0-sources.jar; 赠送Maven依赖信息文件:jackson-data...
赠送jar包:jackson-dataformat-yaml-2.11.4.jar; 赠送原API文档:jackson-dataformat-yaml-2.11.4-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-data...
赠送jar包:jackson-dataformat-yaml-2.8.6.jar; 赠送原API文档:jackson-dataformat-yaml-2.8.6-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.8.6-sources.jar; 赠送Maven依赖信息文件:jackson-data...
spring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot-config-yaml.jarspring-boot...
Log4j2使用XML、JSON或YAML格式的配置文件,使得日志配置更为直观和灵活。你可以根据需要设置不同级别的日志输出,如DEBUG、INFO、WARN、ERROR等,甚至可以为不同的类或方法定制日志级别。 4. **过滤器和Lookup**:...
6. **YAML和JSON支持**:除了XML,Log4j 2还支持YAML和JSON格式的配置文件,使得配置更易读写。 7. **JMX Console**:通过JMX(Java Management Extensions)提供管理控制台,可动态监控和调整Log4j的运行状态。 ...
6. **配置灵活性**:Log4j的配置可以通过XML、JSON、YAML或纯Java代码进行,方便调整和适应不同环境。 7. **安全性**:Log4j 2.17.0修复了一个名为CVE-2021-44228的重大安全漏洞,该漏洞允许攻击者通过控制日志输入...
赠送jar包:jackson-dataformat-yaml-2.8.6.jar; 赠送原API文档:jackson-dataformat-yaml-2.8.6-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.8.6-sources.jar; 赠送Maven依赖信息文件:jackson-data...
3. **XML, JSON, YAML配置**:除了传统的XML配置文件,Log4j2还支持JSON和YAML格式,提供了更灵活的配置选项。 4. **插件体系**:Log4j2引入了一个插件系统,可以方便地添加新的日志模式、Appenders(日志输出目标...
4. 支持多种数据类型:yaml-cpp不仅支持基本的标量类型(如整型、浮点型、字符串),还支持序列(如数组)和映射(如对象)等复杂数据结构。 5. 自定义转换:用户可以自定义数据类型与YAML节点之间的转换规则,使库...
2. **配置灵活性**:Log4j 提供了灵活的配置方式,可以通过XML、JSON、YAML或Java API来定义日志行为。在2.8.2版本中,这些配置文件可能包含更丰富的选项和优化,以提高性能和定制化能力。 3. **Layouts与Patterns*...
1. **配置灵活性**:Log4j2的配置可以通过XML、JSON、YAML或者Java API进行,这使得配置方式多样,适应不同场景需求。 2. **异步日志处理**:Log4j2引入了AsyncAppender,它可以实现日志事件的非阻塞处理,显著提升...
jackson-dataformat-yaml-2.10.0
1. **配置灵活性**:Log4j 2提供了XML、JSON、YAML和Groovy等多种配置格式,允许用户根据项目需求定制日志输出。 2. **异步日志记录**:Log4j 2支持异步日志记录,通过使用LMAX Disruptor库,可以实现高吞吐量且无锁...
《深入理解YAML-CPP库:解析YAML文件的CPP实现》 YAML,全称“YAML Ain't Markup Language”(发音同“camel”,意为“不是标记语言”),是一种简洁、直观的数据序列化语言。它常用于配置文件、数据交换格式等领域...
jackson-dataformat-yaml-2.4.5.jar
2. **可配置性**:Log4j-core-2.5允许开发者通过XML、JSON或YAML等格式的配置文件自定义日志输出格式,包括日志级别、输出目的地、过滤器等。 3. **插件体系**:Log4j-core-2.5支持多种插件,如Layout、Filter、...