代码之家  ›  专栏  ›  技术社区  ›  Wiretap

如何在运行时设置log4j转换模式

  •  4
  • Wiretap  · 技术社区  · 16 年前

    我有一个Java应用程序,同时从电子表格中解析输入。我已经添加了独立于Ant任务运行解析器部分的能力。然而,我使用的普通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);
    
            }
    
    1 回复  |  直到 16 年前
        1
  •  8
  •   Wolfgang    16 年前

    我想你可以这样做:

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

    当然,您必须根据正在使用的类型更改附加程序类型,并且可能必须通过调用来替换“logger.getrootlogger()”,以获取附加程序实际附加到的日志程序。