我有一个带有多个“控制器”的应用程序,我希望将每个日志记录到自己的文件中。这对于他们自己的代码来说很容易,但我也在使用一些使用公共日志记录的库代码。我能否以某种方式让该代码也记录到特定于控制器的文件中?
我在想我可以通过线程以某种方式做到这一点:
class Controller {
public void action() {
setCurrentThreadLogFile(myLogFile);
try {
Library.stuff();
} finally {
restoreCurrentThreadLogFile();
}
}
}
目前,我也将 commons-logging 用于我自己的日志记录,并将 log4j 作为后端。但如果需要,我可以更改它,或者使用混合(在公共日志框架中是可能的)。
我可以做到这一点的一种方法是编写我自己的公共日志记录实现(可能是 log4j 的包装器),但是有现有的解决方案吗?