我正在运行Tomcat8.0.9并使用log4j2。我在控制台附加器上定义了一个模式布局,它被设置为SYSTEM_OUT。布局模式类似于:
%d{yyyy-MM-dd} %m%n
但是,当System.out.println被调用时,该模式不会被应用。我应该期待该模式将应用于System.out.println吗?
发布于 2014-11-25 14:03:08
我应该期待该模式将应用于System.out.println吗?
不是的。
模式(以及整个log4j配置)仅适用于log4j组件(即记录器、附加器、布局等)。SYSTEM_OUT目标意味着ConsoleAppender将使用System.out将预先格式化的日志消息打印到控制台。
因此,要获得格式化的日志输出,您必须使用log4j记录器:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class LoggingTest {
private static final Logger log = LogManager.getLogger();
public static void main(String[] args) {
log.info("This text will be formatted");
System.out.println("This won't");
}
}当然,配置文件必须在指定的类路径或"log4j.configurationFile“系统属性中。
发布于 2014-11-25 12:48:24
请尝试使用: log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p%c{1}:%L- %m%n
这对我很管用。
https://stackoverflow.com/questions/27118947
复制相似问题