开发者社区 问答 正文

logback和log4j能共存吗??报错

我在spring-boot项目里

logback和log4j共存的情况下报错:

java.lang.ExceptionInInitializerError
	at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
	at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:285)
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:275)
	at com.springboot.Sample2SpringApplication.<clinit>(Sample2SpringApplication.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
	at org.apache.log4j.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:51)
	... 13 more



展开
收起
爱吃鱼的程序员 2020-06-10 14:22:12 1455 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    slf4j-log4j使用log4j来实现slf4j
    log4j-over-slf4j让log4j的api桥接到slf4j.
    这两个不能共存,你根据实际情况去除一个。。

    如果你的项目中已经使用log4j的Logger,又不可能全部修改为slf4j的Loggerss,那么log4j-over-slf4j可以快速解决这个问题。
    如果是新项目或者还没有使用其它日志组件,那么可以使用slf4j-log4j来指定使用log4j。
    人家问的是:

    <aname="top"rel="nofollow">logback和log4j


    大哥你太肤浅了人家就是在提供办法只是没表述清楚

    2020-06-10 14:22:28
    赞同 展开评论
问答分类:
问答地址: