我有一个非常简单的代码
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
格式。也许有办法提供一个自定义格式化程序,它将覆盖整个实现。
答案 0 :(得分:0)
我想用自己的方式自定义日期格式。
我真的不知道这个配置需要放在哪里,我认为可以在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中保留日期格式模式。