如何将日志时间戳转换为 log4j2 中的特定时区?

我在一个应用程序中使用 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>


有只小跳蛙
浏览 225回答 1
1回答

一只名叫tom的猫

根据Log4j 2 手册,您可以在模式中指定时区。例如:%d{yyyy-MM-dd&nbsp;HH:mm:ss}{GMT+0}将在“GMT+0”时区格式化日期。第二对(可选)大括号中的字符串是标准时区 ID,如java.util.TimeZone.getTimeZone(String).
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java