Log4j 选择日志文件

Log4j 选择日志文件,log4j,Log4j,我们的应用程序中有多个日志文件,如数据库日志、weblog、quartzlog package/app/database下文件中的任何日志都将转到数据库日志。 package/app/offline下文件中的任何日志都将转到quartzlog日志 我们现在需要的是-希望将/app/database下某个java文件中的日志语句直接输出到quartzlog,而不是数据库日志 如何在java文件中选择一个特定的日志文件?您需要定义适当的附加程序来记录所需的文件。看看你能怎么做 然后,在配置文件中,您

我们的应用程序中有多个日志文件,如数据库日志、weblog、quartzlog

package/app/database下文件中的任何日志都将转到数据库日志。 package/app/offline下文件中的任何日志都将转到quartzlog日志

我们现在需要的是-希望将/app/database下某个java文件中的日志语句直接输出到quartzlog,而不是数据库日志


如何在java文件中选择一个特定的日志文件?

您需要定义适当的附加程序来记录所需的文件。看看你能怎么做

然后,在配置文件中,您可以指示特定程序包中的所有消息进入所选附件:

log4j.logger.my.package = DEBUG, myFileAppender
编辑:

我相信在log4j中,只有包解析是可能的——不能对每个文件或方法使用appender。您可以尝试通过在log4j上添加一个额外的层或实现您自己的appender来解决这个问题

例如,不使用log.debug,而是使用:

my.loggerproxy.log.debug(message);

如果您只需要从一个方法执行,那么上面的内容就足够了。只需指示记录器代理程序包登录到其他文件。

谢谢。是的,我们已经有了。但我需要的是从一个特定方法(比如委托中的一个方法)输出日志语句到另一个输出文件(quartz)中。我将探索更多关于在log4上添加额外层的任何指示都会有所帮助。我想不出来。感谢您必须使用静态方法debug、info等创建my.loggerproxy.Log类。这些方法将调用log.debug。每个日志文件需要一个类-这不是一个优雅的解决方案,但它可能适合您。谢谢。我将尝试这种方法