【问题标题】:Loading a datePattern from application-properties file in Logback and Spring Boot从 Logback 和 Spring Boot 中的 application-properties 文件加载 datePattern
【发布时间】:2020-12-02 02:55:34
【问题描述】:

在我的logback-spring.xml 文件中,我定义了一个时间戳,如下所示:

<timestamp key="date" datePattern="yyyyMMdd"/>

我想知道是否可以从我的application-properties 文件中加载此 datePattern 值。我已经定义了一个属性logging.date.format=yyyyMMdd,我在代码的其他部分使用它,如果我也可以在我的 logback 文件中使用它,那将非常有帮助,这样我只需要在一个地方进行更改。

【问题讨论】:

    标签: java logging log4j logback


    【解决方案1】:

    我在我的应用程序中将属性传递给 logback。在我的 webapp 初始化程序中,获取 LoggerContext 并输入属性。我重置了上下文,因为我更改了一些其他设置,不知道是否需要。

    LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
    JoranConfigurator jc = new JoranConfigurator();
    jc.setContext(context);
    context.reset();
    context.putProperty("prop-name", "prop-value");
    jc.doConfigure(config)
    

    在 logback 文件中,您可以使用任何其他属性行

    ${prop-name}
    

    【讨论】:

    • datePattern=${date} 对我不起作用。我在 MDC 中添加了日期。
    • 我认为应该在LoggerContext中设置,而不是MDC。另一种方法可以基于this article,将属性设置为系统属性,然后重新配置logback以再次读取配置
    猜你喜欢
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2016-04-06
    • 2019-01-02
    • 2010-12-22
    相关资源
    最近更新 更多