Ich benutze Logback für die Anmeldung in meinen Anwendungen und ich bekomme ständig die folgende Warnung jedes Mal, wenn ich die Anwendung ausführen. Wenn ich die Komponententests durchführe, wird es für jede Klasse gedruckt!Kontinuierlich bekommen die "folgenden Logger Logger zugegriffen haben" Logback
SLF4J: The following set of substitute loggers may have been accessed
SLF4J: during the initialization phase. Logging calls during this
SLF4J: phase were not honored. However, subsequent logging calls to these
SLF4J: loggers will work as normally expected.
SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger
SLF4J: com.kohls.kube.service.sdk.logging.CustomAppender
SLF4J: com.kohls.kube.service.sdk.logging.appender.mqtt.messaging.ClientMqttImpl
SLF4J: com.kohls.service.sdk.messaging.TCPMessager
SLF4J: com.kohls.service.sdk.logging.appender.mqtt.MQTTAppender
SLF4J: com.kohls.service.sdk.messaging.EdgeNodeMessager
SLF4J: com.kohls.service.sdk.messaging.SubscriptionTask
ich die logback konfiguriert haben für die Konfigurationsdatei in einem bestimmten Ort zu suchen und unten ist, wie die Log-Factory-Klasse aussieht.
public class LoggerFactory {
static {
System.setProperty("logback.configurationFile", System.getProperty("user.dir") + "\\" + "logbackConfig.xml");
}
private LoggerFactory() {
}
public static Logger getLogger(Class className) {
return org.slf4j.LoggerFactory.getLogger(className);
}
}
Dann bin ich das Abrufen der Logger wie,
private static Logger logger = LoggerFactory.getLogger(ClassName);
Meine Config XML-Datei sieht aus wie unten.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="MQTT" class="com.kohls.service.sdk.logging.appender.mqtt.MQTTAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<url>tcp://localhost:1883</url>
<clientId>MqttAppender</clientId>
<topic>log</topic>
</appender>
<!-- Send debug messages to a file at "c:/jcg.log" -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./UpdaterLog.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>./archive.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="DEBUG">
<!--<appender-ref ref="MQTT"/>-->
<!--<appender-ref ref="FILE"/>-->
<appender-ref ref="STDOUT"/>
</root>
</configuration>
Ich habe dafür gesorgt, dass es keine andere XMLs überall. Nur dieser ist da. Was mache ich hier falsch? Warum bekomme ich diese Warnung immer wieder? Bitte um Rat.
Welche Version von SLF4J und Logback verwenden Sie? – Ceki