我们的应用程序中有多个日志文件,例如数据库日志、weblog、quartzlog。
来自包 /app/database 下文件的任何日志都将转到数据库日志。/app/offline 包下的文件中的任何日志都将转到quartzlog 日志。
我们现在需要的是 - 想要将 /app/database 下的 java 文件之一中的日志 staments 输出到quartzlog 而不是数据库日志。
我们如何在 java 文件中选择特定的日志文件?
我们的应用程序中有多个日志文件,例如数据库日志、weblog、quartzlog。
来自包 /app/database 下文件的任何日志都将转到数据库日志。/app/offline 包下的文件中的任何日志都将转到quartzlog 日志。
我们现在需要的是 - 想要将 /app/database 下的 java 文件之一中的日志 staments 输出到quartzlog 而不是数据库日志。
我们如何在 java 文件中选择特定的日志文件?
您需要定义登录所需文件的适当附加程序。阅读这个简短的介绍,了解如何做到这一点。
然后在配置文件中,您可以指示来自特定包的所有消息进入选定的附加程序:
log4j.logger.my.package = DEBUG, myFileAppender
编辑:
我相信在 log4j 中,只有包解析是可能的——你不能为每个文件或方法使用附加程序。您可以尝试通过在 log4j 之上添加一个额外的层或实现您自己的附加程序来解决此问题。
例如,代替 log.debug 使用:
my.loggerproxy.log.debug(message);
如果您只需要从一种方法中完成它,那么以上就足够了。只需指示记录器代理包记录在不同的文件中。