如何在Log4j2的HTML布局中更改时间列

时间:2018-04-04 04:45:06

标签: logging log4j2 htmllayout

对于我的应用程序,我需要用于记录事件的HTML布局。时间时间列以毫秒为单位,但我需要它以dd-MM-yyyy:HH:mm:ss.sssZ格式。 我怎么做? 因为log4j2的HTML布局不支持pattern属性。所以我无法为时间设定新模式。

1 个答案:

答案 0 :(得分:0)

更改Log4j2 HTML布局中的时间列的步骤:-

1)使用从lo4j2源HTMLLayout复制的代码创建一个名为CustomHTMLLayout的类。

2)在方法public String toSerializable(final LogEvent event) {中,您可以在下面的代码行中找到

sbuf.append(event.getTimeMillis() - jvmStartTime);

您需要将其替换为

sbuf.append(dateFormatter.format(new Date(event.getTimeMillis())));

其中,dateFormatter是SimpleDateFormat的实例。

3)在log4j2.xml中,您需要进行以下更改-

<Configuration status="DEBUG" packages="com.helper">  
// You need to provide correct package name

HtmlLayout应该替换为CustomHTMLLayout

PS:-您可以通过在@PluginFactory public static TransUnionHtmlLayout createLayout和构造函数中再添加一个属性来使其可配置。