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

时间:2009-09-10 07:21:42

标签: java log4j

我从电子表格中解析输入时有一个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 个答案:

答案 0 :(得分: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实际连接的记录器。