【发布时间】:2013-07-12 11:56:44
【问题描述】:
我正在编写可以在实时或历史模拟模式下运行的代码。我正在使用 log4j2 进行日志记录,并将日期和时间打印为每条日志消息的一部分。当我在实时模式下运行代码时效果很好;但是,当我在历史模拟模式下运行代码时,我想在日志消息中获取历史日期和时间,而不是实际的挂钟日期和时间。在 log4j2 中更改日期行为的最佳方法是什么?
谢谢
【问题讨论】:
标签: date logging live simulation log4j2
我正在编写可以在实时或历史模拟模式下运行的代码。我正在使用 log4j2 进行日志记录,并将日期和时间打印为每条日志消息的一部分。当我在实时模式下运行代码时效果很好;但是,当我在历史模拟模式下运行代码时,我想在日志消息中获取历史日期和时间,而不是实际的挂钟日期和时间。在 log4j2 中更改日期行为的最佳方法是什么?
谢谢
【问题讨论】:
标签: date logging live simulation log4j2
可能有更好的方法来做到这一点,但我设法使用 log4j2 的异步记录器和自定义时钟类来更改 log4j2 中使用的日期类:
首先编写一个实现log4j2的时钟类1的类,比如org.my.date。 接下来,运行将以下内容传递给 jvm 的代码:
-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j.Clock=org.my.date
【讨论】: