Logback - 使用每个方法的附加程序,而不是类

Dom*_*mra 5 java logging logback

我有一个包含多种方法的类。我希望每种方法都输出到不同的日志文件。使用这样的 logback.xml 文件,它会记录来自该类的所有日志记录调用。

<logger name="com.mincom.ellipse.conversion.BatchConverter" level="INFO">
   <appender-ref ref="FILE" />
</logger>
Run Code Online (Sandbox Code Playgroud)

如何获取每个方法的日志记录调用。我确定这很简单,但我似乎看不到 doco 中的答案。

dre*_*kka 5

没有使用过 logback,但在 log4j 和其他人中,您可以使用您喜欢的任何名称设置记录器。使用类包和名称只是一种约定。所以我会在你的班级中设置多个记录器,如下所示:

Logger logA = LogFactory.getLogger("LogA");
Logger logB = LogFactory.getLogger("LogB");

public void methodA() {
    logA.debug(...);
}
public void methodB() {
    logB.debug(...);
}
Run Code Online (Sandbox Code Playgroud)

然后在您的 logback 设置中...

<logger name="LogA" level="INFO">
   <appender-ref ref="FILE-A" />
</logger>

<logger name="LogB" level="INFO">
   <appender-ref ref="FILE-B" />
</logger>
Run Code Online (Sandbox Code Playgroud)

应该管用。可能需要一些调整:-)