我尝试在BEAM管道中使用Log4j2日志实现和Slf4j API。在maven中,它看起来像这样:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>2.20.0</version>
</dependency>
它在当地运作良好。对于我开始管道的容器,日志记录也工作得很好。但是,在工作进程内部,这种设置会导致一些问题:
Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j2-impl cannot be present with log4j-to-slf4j
这个额外的库log4j-to-slf4j
不是我的项目的一部分,也没有在依赖项中列出(也没有在传递依赖项中列出)。看起来像是BEAM sdk自己添加的。问题是:如何配置BEAM以使用我Log4j版本?
1条答案
按热度按时间2hh7jdfx1#
当我们使用Maven archetype生成
2.47.0
版本的Beam
项目时:它在
pom.xml
文件中生成具有以下依赖项的项目:然后在代码中,像Java项目中一样使用
SL4J
:我建议你使用
Beam
自带的依赖和版本来处理日志,以防止一些依赖冲突和问题。