org.slf4j.helpers.NOPLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext
Asked Answered
C

2

8

I get the following error when i use logback in maven (m2e).Environment: JBOSS 7.1.1,maven,eclipse. But it work fine if i just run individually as main class. I couldn't figure out why i am getting this error, can anyone help me troubleshooting this issue and find a solution for it.

Error

17:24:23,675 ERROR [stderr] java.lang.ClassCastException: org.slf4j.helpers.NOPLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext 

17:24:23,681 ERROR [stderr] at com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync.logStart(EventLoggerAsync.java:116) 

17:24:23,683 ERROR [stderr] at com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync.onDisconnect(EventLoggerAsync.java:62) 

17:24:23,684 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:817) 

17:24:23,686 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:761) 

17:24:23,688 ERROR [stderr] at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:742) 

17:24:23,690 ERROR [stderr] at org.atmosphere.cpr.AsynchronousProcessor.cancelled(AsynchronousProcessor.java:601) 

17:24:23,691 ERROR [stderr] at org.atmosphere.container.BlockingIOCometSupport.cancelled(BlockingIOCometSupport.java:172) 

17:24:23,693 ERROR [stderr] at org.atmosphere.cpr.AsynchronousProcessor$1.run(AsynchronousProcessor.java:119) 

17:24:23,694 ERROR [stderr] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 

17:24:23,696 ERROR [stderr] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) 

17:24:23,698 ERROR [stderr] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) 

17:24:23,699 ERROR [stderr] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) 

17:24:23,703 ERROR [stderr] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) 

17:24:23,707 ERROR [stderr] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) 

17:24:23,715 ERROR [stderr] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 

17:24:23,716 ERROR [stderr] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 

17:24:23,718 ERROR [stderr] at java.lang.Thread.run(Thread.java:662)
Clayborn answered 18/3, 2013 at 17:40 Comment(1)
Where does JBoss AS 7 come in here too?Virgulate
L
3

The error indicates that com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync class is expecting a ch.qos.logback.classic.LoggerContext, instead it obtains a org.slf4j.helpers.NOPLoggerFactory. This usually occurs when some code tries to cast the return value of org.slf4j.LoggerFactory.getILoggerFactory and slf4j is bound to the NOP implementation because no slf4j binding was available on the class path. This is usually accompanied by an error message.

Lode answered 19/3, 2013 at 13:12 Comment(4)
I have the following files in the WEB-INF/lib. But still get the error. slf4j-api-1.7.3.jar,logback-classic-1.0.10.jar,logback-core-1.0.10.jarClayborn
Where is com.zreflect.emyed.whiteboard.pubsub.EventLoggerAsync located?Lode
it is located in WEB-INF/classes.Clayborn
I've a similar problem when I run 'sbt test', but if I run 'sbt testOnly TestX' everything is ok. How can I try to solve/understand this error? @LodeSexy
G
0

For info, if it can help, I had the same issue:

java.lang.ClassCastException: class org.slf4j.helpers.NOPLoggerFactory cannot be cast to class ch.qos.logback.classic.LoggerContext

with JBoss Wildfly 7.4 when using SLF4J 2.0.3 (logback 1.3.4) and this was due to https://jira.qos.ch/browse/SLF4J-548 and the wrong ClassLoader in use. Updating to SLF4J 2.0.4 solves this NOPLogger issue

Graze answered 24/11, 2022 at 9:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.