2009-09-10 72 views
4

我有一个Java应用程序,同时分析电子表格的输入。我已经添加了从ant任务中仅运行解析器部分独立的功能。然而,我正在使用的正常log4j模式可以使输出很难阅读,我想在运行时设置一个简单的模式。如何在运行时设置log4j转换模式

因此,像log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n

 parseDebug = new Boolean(System.getProperty("ptpunit.parseDebug")).booleanValue(); 

     if(parseDebug){ 

      // SET CONVERSION PATTERN HERE 

      log.setLevel((Level) Level.DEBUG); 

     } 

回答

8

我想你可以做这样的事情:

ConsoleAppender a = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout"); 
a.setLayout(new PatternLayout("%d{HH:mm:ss} %-5.5p %t %m%n")); 

当然,你必须根据一个改变的Appender型使用的是和你可能必须通过调用来取代“Logger.getRootLogger()”以获取您的appender实际连接的记录器。