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

Wir*_*tap 5 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);

        }
Run Code Online (Sandbox Code Playgroud)

Wol*_*ang 9

我想你可以这样做:

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

当然,您必须根据您使用的类型更改Appender类型,您可能必须通过调用来取代"Logger.getRootLogger()"以获取您的appender实际附加到的记录器.