我在一个应用程序中使用log4j2进行日志记录,应用程序部署在从伦敦、东京、纽约等地运行的服务器上。
我稍后汇总日志以进行分析。为了使它统一,我想把日志的时间戳转换成一个单一的时区,比如GMT或EST。我怎样才能在log4j2中做到这一点?
<Appenders>
<RollingRandomAccessFile name="RandomAccessFileOutput" fileName="${sys:host.log}"
filePattern="${sys:host.log}.%d{yyyy-MM-dd-hh-mm-ss}.gz">
<PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
</Policies>
</RollingRandomAccessFile>
<File name="File" fileName="console.log" append="false" >
<PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
</File>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>发布于 2018-09-26 14:06:30
根据Log4j 2手册,您可以在模式中指定一个时区。例如:
%d{yyyy-MM-dd HH:mm:ss}{GMT+0}将"GMT+0“时区中的日期格式化。第二个(可选)大括号中的字符串是一个标准时区id,正如java.util.TimeZone.getTimeZone(String)所理解的。
https://stackoverflow.com/questions/52518089
复制相似问题