3 つの異なる slf4j ロガーを作成したクラスがあります。
package x.y.z;
public class MyClass {
private static final Logger logger1 = LoggerFactory.getLogger(MyClass.class);
private static final Logger logger2 = LoggerFactory.getLogger(MyClass.class + "-a);
private static final Logger logger3 = LoggerFactory.getLogger(MyClass.class + "-b);
public void myMethod() {
// some code that logs to all loggers at debug level
}
}
奇妙なことに、xyzMyClass がデバッグ レベルで構成されていても、MyClass-a および MyClass-b ロガーはデバッグ レベルでログを記録せず、代わりに構成されたルート レベル (私の場合は情報) でログを記録します。以下に示すように、-a および -b に特定のロガーを指定しても機能しません。ルートをデバッグに変更するまで、デバッグ レベルでログを記録しません。本当にこれに困惑しています、何かアイデアはありますか?
<configuration scan="true" scanPeriod="30 seconds">
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
....
</appender>
<logger name="x.y.z.MyClass" level="DEBUG" />
<logger name="x.y.z.MyClass-a" level="DEBUG" />
<logger name="x.y.z.MyClass-b" level="DEBUG" />
<root>
<level value="info" />
<appender-ref ref="FILE" />
</root>
</configuration>