SLF4J with a log request has not yet loaded the class "org.slf4j.impl.StaticLoggerBinder"

I have a maven project that uses slf4j with logback as a logger. I could see that both artifacts are in my maven dependency tree element. But whenever I tried to run my project, I keep suggesting:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: default for inactivity (NOP) SLF4J: For more information see http://www.slf4j.org/codes.html#StaticLoggerBinder .

I check the link and it was said:

Putting one (and only one) of slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar in the class path should solve the problem.

I am adding logback-classic to my project (I am using 1.0.9), but I keep asking that this message and my log are not working.

Can someone help me solve this problem? Thanks.

UPDATE:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.employee.scheduler</groupId> <artifactId>rostering</artifactId> <version>0.0.1-SNAPSHOT</version> <name>nurserostering</name> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- or whatever version you use --> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <!-- Needed for runExamples.sh and runExamples.bat --> <addClasspath>true</addClasspath> <classpathPrefix>../../binaries/</classpathPrefix> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <configuration> <executable>java</executable> <classpathScope>runtime</classpathScope> <arguments> <argument>-Xms256m</argument> <argument>-Xmx1024m</argument> <argument>-server</argument> <argument>-cp</argument> <classpath /> <argument>com.employee.scheduler.nurserostering.app.NurseRosteringApp</argument> </arguments> </configuration> </plugin> </plugins> </pluginManagement> </build> <dependencies> <dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-core</artifactId> <version>6.1.0.Final</version> </dependency> <dependency> <groupId>jdom</groupId> <artifactId>jdom</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-benchmark</artifactId> <version>6.1.0.Final</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.0.9</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.9</version> </dependency> </dependencies> 

and here is my logback.xml:

 <?xml version="1.0" encoding="UTF-8"?> <!-- ~ Copyright 2013 JBoss Inc ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <configuration> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- %l lowers performance --> <!--<pattern>%d [%t] %-5p %l%n %m%n</pattern>--> <pattern>%d [%t] %-5p %m%n</pattern> </encoder> </appender> <!--<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">--> <!--<file>local/log/optaplannerBenchmark.log</file>--> <!--<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">--> <!--<fileNamePattern>local/log/optaplannerBenchmark.%i.log.zip</fileNamePattern>--> <!--<minIndex>1</minIndex>--> <!--<maxIndex>3</maxIndex>--> <!--</rollingPolicy>--> <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">--> <!--<maxFileSize>5MB</maxFileSize>--> <!--</triggeringPolicy>--> <!--<encoder>--> <!--&lt;!&ndash; %l lowers performance &ndash;&gt;--> <!--&lt;!&ndash;<pattern>%d [%t] %-5p %l%n %m%n</pattern>&ndash;&gt;--> <!--<pattern>%d [%t] %-5p %m%n</pattern>--> <!--</encoder>--> <!--</appender>--> <logger name="org.optaplanner" level="debug"/> <logger name="com.employee.scheduler" level="debug"/> <root level="warn"> <appender-ref ref="consoleAppender" /> <!--<appender-ref ref="fileAppender" />--> </root> </configuration> 

How I use it in my program:

 public class SolutionBusiness { protected final transient Logger logger = LoggerFactory.getLogger(getClass()); // some other codes public void doMove(Move move) { if (solver.isSolving()) { logger.error("Not doing user move ({}) because the solver is solving.", move); return; } if (!move.isMoveDoable(guiScoreDirector)) { logger.warn("Not doing user move ({}) because it is not doable.", move); return; } logger.info("Doing user move ({}).", move); move.doMove(guiScoreDirector); } } 

Here are my maven dependencies:

maven dependencies

+10
source share
3 answers

I think this happens when you have a custom sbt task, and this task uses slf4j. The sbt custom task run with runner has classPath, which are usually specified as

(dependencyClasspath in Compile) value

This caused an error when logback-classic usually logback-classic in % runtime .

To resolve this error, you must include logback-classic in libraryDependencies with compile wherever a custom task is defined or used.

+1
source

You can only have this particular error message if logback-classic or logback-core are not in the classpath. Since they are in your maven dependencies (see Pom) and in your path to the eclipse class (see Screenshot), this is strange.

First check to see if you all get the same error message (you may have fixed this problem and now received a different error message).

Secondly, in eclipse open the type "StaticLoggerBinder" and set a breakpoint there. Also set a breakpoint in "LoggerFactory.getLogger". Then debug.

0
source

There was the same error. I went to the Maven repository and searched for the latest non-beta versions. Just changing versions worked. Working room:

 <properties> <slf4j.version>1.7.26</slf4j.version> <logback.version>1.2.3</logback.version> </properties> <dependencies> <!-- LOGGING --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> </dependencies> 
0
source

Source: https://habr.com/ru/post/983069/


All Articles