【问题标题】:App Engine logging.properties: customize Date format for lazy-evaluation LogApp Engine logging.properties:自定义延迟评估日志的日期格式
【发布时间】:2017-06-10 16:06:59
【问题描述】:

我有一个非常简单的代码

Logger logger = Logger.getLogger(HelloAppEngine.class.getName());
logger.log(Level.INFO, "This is now: {0}", new Date());

在(基于 Maven 的)Google App Engine 项目中定义。

这个日志的输出是

giu 10, 2017 6:03:10 PM it.log.HelloAppEngine doGet
INFO: This is now: 10/06/17 18.03

使用默认的日期格式。我想用我自己的自定义日期格式。

我真的不知道这个配置需要放在哪里,我认为可以在logging.properties 文件中,但我找不到合适的配置

自定义延迟评估日志消息提供的日期格式的正确方法是什么?

我在java.text.MessageFormat 类中找到了相关代码。

触发格式化Date对象

似乎不是为了格式化日期而访问外部配置,它使用固定的DateFormat.SHORT 格式。也许有一种方法可以提供一个自定义格式化程序,它将覆盖整个实现。

【问题讨论】:

    标签: maven google-app-engine logging lazy-evaluation date-formatting


    【解决方案1】:

    我想自定义日期格式。

    我真的不知道这个配置需要放在哪里,我认为可以在 logging.properties 文件中,但我找不到合适的配置

    您必须在日志字符串中包含日期格式,如java.text.MessageFormat 类级别文档中所述。如上所述,您可以使用任何java.text.SimpleDateFormat 模式。

    例如,您可以使用DateFormat 常量:

    logger.log(Level.INFO, "This is now: {0,date,long} at {0,time,full}", new Date());
    

    否则,您可以使用模式:

    logger.log(Level.INFO, "This is now: {0,date,EEE, MMM dd HH:mm:ss:S ZZZ yyyy}", new Date());
    

    如果您使用localization in your logging,您可以用较短的键替换消息并将日期格式模式保留在您的 ResourceBundle 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      相关资源
      最近更新 更多