我在使用Log4J一个项目。其中一个要求是为每个线程创建一个单独的日志文件;这本身就是一个奇怪的问题,通过即时创建一个新的FileAppender并将其附加到Logger实例来进行排序。Log4J的 - SiftingAppender一样的功能
Logger logger = Logger.getLogger(<thread dependent string>);
FileAppender appender = new FileAppender();
appender.setFile(fileName);
appender.setLayout(new PatternLayout(lp.getPattern()));
appender.setName(<thread dependent string>);
appender.setThreshold(Level.DEBUG);
appender.activateOptions();
logger.addAppender(appender);
一切正常,直到我们意识到,其他图书馆,我们使用 - Spring Framework V3.0.0(使用Commons Logging) - 只能由初始化附加目的地春节日志数据被“看到” - 不符合上述技术打球从log4.configuration文件中,而不是由运行时创建的Appenders。 所以,回到原点。
经过一番调查,我发现新的和改进的LogBack有一个appender - SiftingAppender - 这正是我们所需要的,即独立文件上的线程级别日志记录。
目前,移动的logback是不是一种选择,因此,被卡住Log4J的,我怎么能实现SiftingAppender一样的功能,并保持弹簧快乐呢?
注:春天仅用于JdbcTemplate功能,没有IOC;以“钩子”春天的共享记录到Log4J的我加了这条线在log4j.properties文件:
log4j.logger.org.springframework = DEBUG
的指示here。
如果您只使用Spring的jdbc功能,那么您可能需要考虑使用类似于apache commons-dbutils的东西。 – 2009-12-18 18:45:34