Java 项目中每个类的Log4j
我有一个包含类的项目 我希望按类进行日志记录,而不是将它们全部打包到一个日志文件中。我正在使用Java 比如我有 foo.bar.class1 foo.bar.class2 如何实现每个类的日志文件 这样我就可以有一个名为“class1.log”和“class2.log”的日志文件,其中包含各自的日志数据。我应该在log4j.properties或类中做什么Java 项目中每个类的Log4j,java,log4j,Java,Log4j,我有一个包含类的项目 我希望按类进行日志记录,而不是将它们全部打包到一个日志文件中。我正在使用Java 比如我有 foo.bar.class1 foo.bar.class2 如何实现每个类的日志文件 这样我就可以有一个名为“class1.log”和“class2.log”的日志文件,其中包含各自的日志数据。我应该在log4j.properties或类中做什么 非常感谢您的帮助。我不确定您是否可以在log4j.xml或log4j.properties中执行此操作。因此,您实际上可以这样做(未经测试
非常感谢您的帮助。我不确定您是否可以在log4j.xml或log4j.properties中执行此操作。因此,您实际上可以这样做(未经测试,但应以这种方式工作):
如果要使用
log4j-slf4j
桥接器,然后插入logback
后端,则可以使用将不同日志“筛选”到不同文件中。我不确定这样的功能是否仅适用于log4j。为每个类创建日志记录器,并将每个日志记录器与单独的appender关联,并具有自己的日志文件。使用log4j,我认为您需要编写一个自定义appender来完成此操作。但我真的不认为这是个好主意。跨涉及多个类的方法调用序列跟踪问题可能非常棘手。@NaveenRamawat我如何实现它?谢谢
static {
Logger LOG = LoggerFactory.getLogger(MyClass.class);
try {
((FileAppender)LOG.getAppender()).setFile("class-" + MyClass.name());
} catch (...) {}
}