【问题标题】:Logging skipped items to a different file in the same spring batch job在同一个春季批处理作业中将跳过的项目记录到不同的文件中
【发布时间】:2012-02-25 20:56:42
【问题描述】:

我有一个 spring 批处理程序,我在其中实现如下skiplistener 类:

public class MySkipListener implements SkipListener<SomeBean, SomeBean> {


public void onSkipInProcess(final SomeBean item, final Throwable t) {
    // TODO Auto-generated method stub
    System.out.println("Skipped details during PROCESS is: " + t.getMessage());
    LogFactory.getLog("INFO" + MySkipListener.class.getName()).info(
        "Skipped details during PROCESS is: " + t.getMessage());    

}

public void onSkipInRead(final Throwable t) {

    System.out.println("Skipped details during READ is: " + t.getMessage());
    LogFactory.getLog("INFO" + MySkipListener.class.getName()).info(
        "Skipped details during READ is: " + t.getMessage());


}


public void onSkipInWrite(final SomeBean item, final Throwable t) {
    // TODO Auto-generated method stub
    System.out.println("Skipped details during WRITE is: " + t.getMessage());
    LogFactory.getLog("INFO" + MySkipListener.class.getName()).info(
        "Skipped details during WRITE is: " + t.getMessage());
}

}

log4j 配置是:

log4j.rootLogger=myLOG
log4j.appender.myLOG=org.apache.log4j.RollingFileAppender
log4j.appender.myLOG.File=myLog.log
log4j.appender.myLOG.MaxFileSize=100KB
# Keep one backup file
log4j.appender.myLOG.MaxBackupIndex=1
log4j.appender.myLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.myLOG.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} [%t] [%c{1}] %-5p %x - %m%n

很明显,所有的日志记录语句都会进入 myLog.log,包括上面跳过侦听器类方法中的语句。

但是,我不希望跳过的项目日志进入主日志文件。我希望他们转到一个单独的文件(例如skippedItems.log),这样我就不需要在主日志中搜索跳过的项目行,而是直接在一个单独的文件中获取所有跳过的项目。

我需要做哪些改变才能实现这一目标?

如果 myLOGTwo 是我的配置中未添加到 rootLogger 中的新附加程序,则以下尝试不起作用。因此,每次我想通过该 appender 写入时,我都想动态地将其添加和删除到 rootLogger。

Logger l = Logger.getRootLogger();
Appender a = l.getAppender("myLOGTwo");

l.addAppender(a);

LogFactory.getLog("INFO" + MySkipListener.class.getName()).info("Testing");

l.removeAppender(a);

【问题讨论】:

标签: spring log4j logging spring-batch


【解决方案1】:

请参阅上述问题中迈克尔的评论...

【讨论】:

    猜你喜欢
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2021-05-11
    • 2014-12-21
    • 1970-01-01
    相关资源
    最近更新 更多