org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext Exception in thread "main" java.lang.IllegalArgumentException...: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded...to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Log4jLoggerFactory 线程“main”java.lang.illegalargumentException...中出现异常:loggerFactory不是logback loggerContext,但logback在类路径上。
LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....Either remove Logback or the competing implementation SLF4J: Class path contains multiple SLF4J bindings.../logback-classic/1.1.11/logback-classic-1.1.11.jar!...日志: Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback...已经在classpath中存在,这时候就应该意识到有Logback依赖冲突,在多个地方都有Logback的依赖。
相关异常信息如下: Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback...其中关键新增在这里: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....Either remove Logback or the competing implementation…… 就是说Logback已经在classpath中存在,但LoggerFactory并不是Logback...此时就应该意识到有Logback依赖冲突。...:logback-classic:jar:1.1.5:compile [INFO] | | | \- ch.qos.logback:logback-core:jar:1.1.5:compile [
提示的错误信息为: Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext...but Logback is on the classpath....Either remove Logback or the competing implementation (class org.apache.logging.slf4j.Log4jLoggerFactory
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private Logger log = LoggerFactory.getLogger...详细源码解读如下: // slf4j-api.jar // org.slf4j.LoggerFactory public final class LoggerFactory { private...: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....# “/D:/.m2/repository/org/slf4j/slf4j-simple/1.7.30/slf4j-simple-1.7.30.jar”是本地Maven仓库路径 Caused by: java.lang.IllegalArgumentException...: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath.
No matching field found: getConfiguration for class org.apache.logging.slf4j.SLF4JLoggerContext”: java.lang.IllegalArgumentException...exclusion> 此时在代码中通过如下引入slf4j记录日志: import org.slf4j.Logger; import org.slf4j.LoggerFactory...; ... protected final Logger logger = LoggerFactory.getLogger(this.getClass()); application.properties...中增加如下内容: logging.config=classpath:logback.xml 在classpath下增加logback.xml的配置文件,示例内容如下:
springboot linux启动报java.lang.IllegalArgumentException 启动报错提示 SLF4J: Class path contains multiple SLF4J...org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException...: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded...日志,所以这里一定要排除slf4j-log4j12 包,不要排除logback-classic 包,通过idea maven项目管理可以看到jar包依赖关系 点击之后可看到: 我们在这里排除掉
就会报如下错误“No matching field found: getConfiguration for class org.apache.logging.slf4j.SLF4JLoggerContext”: java.lang.IllegalArgumentException...exclusion> 此时在代码中通过如下引入slf4j记录日志: import org.slf4j.Logger; import org.slf4j.LoggerFactory...; ... protected final Logger logger = LoggerFactory.getLogger(this.getClass()); application.properties...中增加如下内容: logging.config=classpath:logback.xml 另外当然别忘了在classpath下增加logback.xml的配置文件了,示例内容如下:
Log 异常问题: 由于之前我们项目中历史原因,既有用log4j,也有用logback,升级后已经不行,提示冲突,报错如下 Exception in thread "main" java.lang.IllegalArgumentException...: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath....Either remove Logback or the competing implementation (class org.slf4j.helpers.NOPLoggerFactory loaded...,要么解决slf4j-api的冲突依赖,这里两种方式都尝试了,slf4j-api依赖的地方太多,后面移除了Logback。...要排除依赖一个好办法:使用Maven Helper插件 logback依赖: ch.qos.logback
测试准备 建立一个maven项目,并添加slf4j-api, logback-core, logback-classic 依赖。...appender-ref ref="FILE" /> 测试代码 import org.slf4j.Logger; import org.slf4j.LoggerFactory...测试二(多线程) 再看看在多线程环境中是否也都有效,logback.xml同测试一 测试代码 import org.slf4j.Logger; import org.slf4j.LoggerFactory...测试二(多线程) logback.xml配置同测试一 测试代码 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC...; public class LoggerConfVariablesTest { private static final Logger LOG = LoggerFactory.getLogger
在上面提及异常的中英文从资源文件中读取,若读取失败需要日志记录,所以使用网上正在闹腾的Logback来记录。关于Logback与Log4j这里不做评判和说明,所有疑问可以请教谷歌。...一、Logback的使用前期准备 1、在官网http://logback.qos.ch/download.html下载Logback;在官网http://www.slf4j.org/download.html...configurator.setContext((LoggerContext) loggerFactory); try { configurator.doConfigure...三、斗医应用如何使用Logback呢?...配置文件 ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory(); JoranConfigurator
logback-classic 在 logback.xml 中进行配置 logback.xml...如果要在代码中使用这些 appender,可以分别通过 LoggerFactory.getLogger 方法获取到不同的 Logger 对象,并在代码中使用。...需要注意的是,LoggerFactory.getLogger 方法的参数需要传入对应 appender 的 name 属性值。...---- LoggerFactory.getLogger不指定name,使用class是什么意思呢 在使用LoggerFactory.getLogger()方法时,如果不指定name参数,则会默认使用当前类的类名作为参数...logback打印日志的最佳实践是什么,请给出代码 logback打印日志的最佳实践通常包括以下几个方面: 使用slf4j统一日志接口,避免直接使用具体的日志框架。
package vir56k.logdemo; import android.os.Environment; import org.slf4j.LoggerFactory; import java.io.File...; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext...initialized) // since we want to reconfigure it LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory...root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); root.setLevel...//StatusPrinter.print(context); } } 使用方法 先声明和创建实例 private static final Logger logger = LoggerFactory.getLogger
LoggerFactory是Logback提供的工厂类,可以用来获取Logger实例。...下面是一个简单的示例: import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Demo { private...static final Logger logger = LoggerFactory.getLogger(Demo.class); public void test() { logger.info...; } } 上面代码中,我们定义了一个Demo类,并使用LoggerFactory获取了一个Logger实例。在test方法中,我们使用Logger输出一条日志。...{ private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); public
> clazz) { this(LoggerFactory.getLogger(clazz)); } public Slf4jLogger(String name) { this...(LoggerFactory.getLogger(name)); } // 请注意这个构造器是default的访问权限,并不能由你手动指定底层日志实现 // 而是由LoggerFactory.getLogger...示例如下: @Test public void fun1(){ Logger logger = LoggerFactory.getLogger("【test name一般显示全类名】");...一切都可从LoggerFactory.getLogger()这个方法开始: 1、getLogger()方法: LoggerFactory: public static Logger getLogger...= getILoggerFactory(); return iLoggerFactory.getLogger(name); } 2、getILoggerFactory()获取工厂实例方法 LoggerFactory
Logback ---- Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。...由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。...com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0] SLF4J API用法 ---- 1 、从org.slf4j包导入Logger和LoggerFactory...import org.slf4j.Logger; import org.slf4j.LoggerFactory; 2、 声明日志类 private final Logger logger =...LoggerFactory.getLogger(LoggingSample.class); 3、使用debug、warn、info、error方法并跟踪适合的参数。
mavan项目 引入依赖 ch.qos.logback logback-classic...; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Hello world!...* */ public class App { private static final Logger LOGGER = LoggerFactory.getLogger(App.class)...LOGGER.debug("logback debug output"); } } Copy 输出 2021-07-12 15:07:01.105 [main] INFO com.zh.ch.bigdata.logback.App...- logback info output 2021-07-12 15:07:01.107 [main] DEBUG com.zh.ch.bigdata.logback.App - logback debug
代码 Java代码如下: import java.io.IOException; import java.nio.charset.Charset; import org.slf4j.LoggerFactory...; import org.testng.annotations.Test; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger...; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.encoder.PatternLayoutEncoder...LoggerDynamicConfig { /** * 日志记录Logger */ private static final Logger LOG = (Logger) LoggerFactory.getLogger...@Test public void addAppender() throws IOException { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory
package chapters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; // 省略......Logger logger = LoggerFactory.getLogger(LogbackTest.class); logger.info(" {} is best player in world"...源码 Logger创建 Logger logger = LoggerFactory.getLogger(LogbackTest.class); 接下来我们根据源码分析一下logger的初始化。...第步:org.slf4j.LoggerFactory#getLogger(java.lang.String) public static Logger getLogger(String name) {...第3步:org.slf4j.LoggerFactory#getILoggerFactory public static ILoggerFactory getILoggerFactory() {
我们知道使用 Slf4j ,需要 LoggerFactory.getLogger() 方法获取实例。...import org.slf4j.Logger; import org.slf4j.LoggerFactory; private final Logger logs = LoggerFactory.getLogger...(1)调用 getILoggerFactory() 方法得到 LoggerFactory。...假设我们想要排除 logback 依赖,使用 log4j。Ctrl + F 搜索 logback,可以找到引用该依赖的树形结构。 ?...如果排出后重新搜索仍然存在 logback 依赖,则重复执行排除的操作。
领取专属 10元无门槛券
手把手带您无忧上云