2012-02-03 132 views
0

我有我在哪里如下实施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),以便我不需要在主日志中搜索已跳过的项目行,但可以将所有已跳过的项目直接放在单独的文件中。

我需要做些什么改变才能实现?

下面的try不起作用myLOGTwo是我的配置中没有添加到rootLogger中的新appender。所以我想在每次我想通过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); 
+0

为什么要使用添加/ removeAppender?见例如http://www.jguru.com/faq/view.jsp?EID=1311014它适用于getLogger(“类别”) – 2012-02-11 22:11:43

回答

0

请看到迈克尔在上面的问题的评论...

相关问题