首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j2 ConsoleAppender未应用PatternLayout

Log4j2 ConsoleAppender未应用PatternLayout
EN

Stack Overflow用户
提问于 2014-11-25 12:41:55
回答 2查看 683关注 0票数 2

我正在运行Tomcat8.0.9并使用log4j2。我在控制台附加器上定义了一个模式布局,它被设置为SYSTEM_OUT。布局模式类似于:

%d{yyyy-MM-dd} %m%n

但是,当System.out.println被调用时,该模式不会被应用。我应该期待该模式将应用于System.out.println吗?

EN

回答 2

Stack Overflow用户

发布于 2014-11-25 14:03:08

我应该期待该模式将应用于System.out.println吗?

不是的。

模式(以及整个log4j配置)仅适用于log4j组件(即记录器、附加器、布局等)。SYSTEM_OUT目标意味着ConsoleAppender将使用System.out将预先格式化的日志消息打印到控制台。

因此,要获得格式化的日志输出,您必须使用log4j记录器:

代码语言:javascript
复制
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“系统属性中。

票数 2
EN

Stack Overflow用户

发布于 2014-11-25 12:48:24

请尝试使用: log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p%c{1}:%L- %m%n

这对我很管用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27118947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档