log4j的:以毫秒为单位的当前时间(log4j : current time in millise

2019-06-26 16:34发布

log4j.properties我可以设置PatternLayout例如("[%p] %c - %m - %d %n")

是否有返回以毫秒为单位的当前时间的任何符号(%的东西)?

Answer 1:

没有Log4J的符号,你想要做什么。

%d返回当前日期与给定的模式,由定义SimpleDateFormat (你在括号之间放模式),但不给你以毫秒的时间。

%r给出了自执行开始的毫秒数。

实现你想要的东西的一种可能的方式是延长的Log4j的行为,它更复杂了不少,但如果它是绝对必要的......在这里你去:

自定义的log4j (编辑:不再上网?)
自定义的log4j (编辑:2018替代)

编辑 :请记住,从你的评论,如果你需要弄清楚在不同的机器上执行之间的时间差,你必须确保机器的时钟同步,或者它会导致你错误的结论。



Answer 2:

你可以试试这个。

log4j.appender.appender_name.layout=org.apache.log4j.PatternLayout
log4j.appender.appender_name.layout.ConversionPattern=%d %p [%c] - %m%n

日期PARAMS %d 。 例如: %d{HH:mm:ss,SSS}

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html



Answer 3:

试试这个,

   %d{dd MMM yyyy HH:mm:ss,SSS}


Answer 4:

您应该能够使用%d{UNIX_MILLIS}从手册 :

%d{UNIX}输出UNIX时间(秒)。 %d{UNIX_MILLIS}输出UNIX时间以毫秒为单位。 在UNIX时间的区别,在UNIX秒,以毫秒为单位UNIX_MILLIS,当前时间和午夜,1970年1月1日,UTC之间。 尽管时间单位是毫秒,粒度取决于操作系统(Windows)上。 这是一种有效的方式来输出的事件时间,因为只有从长字符串转换发生,不涉及日期格式。



文章来源: log4j : current time in milliseconds
标签: java log4j