因此,我在他们的网站上尝试了遵循这一点(非maven实现)和将slf4j添加到log4j的要求。并尝试使用此代码
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Main.class);
logger.info("test");
}
并将以下内容添加到我的库中
当我尝试运行它时,我得到以下错误
Exception in thread "main" java.lang.StackOverflowError
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:964)
at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:40)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)
at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)...
知道我哪里出错了吗?
想法1:
上述答案是有效的。矿山是一个多模块项目,log4j-to-slf4j-2.3。jar
依赖关系由另一个项目拉取。我必须扫描每一个项目,以找出哪个项目是吸引这一点。我使用以下命令在项目级别执行。
gradlew common:dependencies --configuration runtime
common
是项目的名称configuration runtime
-您可以根据需要更改此名称
想法二:
如果您使用的是具有多模块项目的spring。然后,您可以简单地在每个子项目的构建中添加以下配置。渐变
或相关性。渐变
configurations {
all*.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
以防万一,如果您的类路径中有logback,它也必须被删除!
您正在使用log4j-slf4j-impl-2.3.jar
和log4j-to-slf4j-2.3.jar
创建一个调用循环。
log4j-slf4j-impl-2.3。jar
是向log4j发送slf4j调用的适配器的实现。
log4j-to-slf4j-2.3。jar正在将log4j调用发送回slf4j。把这个拿走。
问题内容: 我习惯在普通的log4j上使用。现在,我切换到,无法使附加程序正常工作。 下面的附加程序可以正常工作。但是永远不会创建的日志文件。为什么? 问题答案: 该标记缺少属性。
问题内容: 因此,我尝试按照其网站上的此(非Maven实现)和要求将slf4j添加到log4j。并尝试使用此代码 并将以下内容添加到我的库中 log4j-api-2.3.jar log4j-core-2.3.jar log4j-sl4j-impl-2.3.jar log4j-to-sl4j-2.3.jar slf4j-api-1.7.12.jar 当我尝试运行它时,出现以下错误 知道我要去哪里错了
我一直在尝试遵循这个网站和其他网站上的食谱,了解如何将log4j2 FileAppender实例添加到使用SLF4J API进行整体日志记录的类中,但我运气不佳。有人能告诉我下面的代码哪里出错了吗? assertTrue语句通过,因此文件由FileAppender创建,但assertEquals失败,因为日志线的长度为零(即日志文件没有内容)。 有什么想法吗?
我正在尝试提供从log4j2到Spring Boot执行器日志。不幸的是,我只实现了如何为根记录器更改日志级别。也许有人知道如何连接执行器与log4j2?
我想使用新的log4j2-Java日志框架。一切正常,但我从一小时后就尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认包中。 将log4j2.xml文件移动到项目中的任意位置 将log4j2.xml文件命名为log4j.xml 在项目中创建一个文件夹,将log4j2.xml文件放
下午好, 当我尝试使用SMTP Appender时,控制台中出现了一个奇怪的错误。加载XML文件时会出现此错误,因为除了标准输出之外,没有通过任何输出流记录该文件。appender的内容如下(我已经确认错误在这个XML块中)。我已经删除了我们的服务器信息。 无论它是否在记录器中被引用,我都会在运行程序并从日志管理器运行getLogger时立即收到以下错误。我已经删除了几个文件名,并用文件在那一点上