Вы можете использовать опцию KeyValuePair
в JsonLayOut
.
Пожалуйста, выберите и используйте один из 3 случаев.
СЛУЧАЙ 1. Использование KeyValuePair
- добавьте
JsonLayout
в файл конфигурации. Я использовал log4j2.xml
. Ключ <KeyValuePair key="timestamp" value="$${date:yyyy-MM-dd'T'HH:mm:ss.SSSZ}" />
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Routing name="RoutingAppender">
<Routes pattern="${ctx:logFileName}">
<Route>
<RollingFile name="Rolling-${ctx:logFileName}"
fileName="./logs/${ctx:logFileName}.log"
filePattern="./logs/${ctx:logFileName}.%i.log.gz">
<JsonLayout>
<KeyValuePair key="timestamp" value="$${date:yyyy-MM-dd'T'HH:mm:ss.SSSZ}" />
</JsonLayout>
<SizeBasedTriggeringPolicy size="512" />
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="RoutingAppender" />
</Root>
</Loggers>
</Configuration>
Запустить!
Проверить вывод. Ключ timestamp
.
{
"instant" : {
"epochSecond" : 1588683107,
"nanoOfSecond" : 556000000
},
"thread" : "main",
"level" : "INFO",
"loggerName" : "com.study.Stackoverflow",
"message" : "log printed! - testFile",
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
"threadId" : 1,
"threadPriority" : 5,
"timestamp" : "2020-05-05T21:51:47.556+0900"
}
Ссылка: Замена имущества - дата
CASE 2. Использование JsonLayOut
- добавьте
JsonLayout
в файл конфигурации. Я использовал log4j2.xml
. Ключ <JsonLayout includeTimeMillis="true">
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Routing name="RoutingAppender">
<Routes pattern="${ctx:logFileName}">
<Route>
<RollingFile name="Rolling-${ctx:logFileName}"
fileName="./logs/${ctx:logFileName}.log"
filePattern="./logs/${ctx:logFileName}.%i.log.gz">
<JsonLayout includeTimeMillis="true">
</JsonLayout>
<SizeBasedTriggeringPolicy size="512" />
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="RoutingAppender" />
</Root>
</Loggers>
</Configuration>
Запустить!
Проверить вывод. Ключ timeMillis
.
{
"timeMillis" : 1588688067619,
"thread" : "main",
"level" : "INFO",
"loggerName" : "com.edu.test.Stackoverflow",
"message" : "log printed! - testFile",
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
"threadId" : 1,
"threadPriority" : 5,
"test" : "11111"
}
Reference : [JSONLayout - includeTimeMillis](https://logging.apache.org/log4j/2.x/manual/layouts.html#JSONLayout)
СЛУЧАЙ 3. Использование System Property
Извините, я не смог создать рабочий код. Я не знаю, как я могу принять его в коде.
Ссылка: Свойства системы - log4j2.simplelogShowdatetime