[logback-dev] [JIRA] Commented: (LBCLASSIC-88) Use System.nanoTime() instead of System.currentTimeMillis() for LogEvent timestamp

Ceki Gulcu (JIRA) noreply-jira at qos.ch
Thu Nov 20 09:27:35 CET 2008

    [ http://jira.qos.ch/browse/LBCLASSIC-88?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10917#action_10917 ] 

Ceki Gulcu commented on LBCLASSIC-88:

In  unit tests  logback already uses System.nanoTime. Are you referring to relative time field in LoggingEvent? In that case, logback indeed uses System. currentTimeMillis(), which as you point out, is not very precise. 

Supporting nano second resolution would entail the addition of a new field in LoggingEvent and abandoning the caching code in ch.qos.logback.classic.pattern.RelativeTimeConverter, but certainly feasible changes..

> Use System.nanoTime() instead of System.currentTimeMillis() for LogEvent timestamp
> ----------------------------------------------------------------------------------
>                 Key: LBCLASSIC-88
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-88
>             Project: logback-classic
>          Issue Type: Improvement
>    Affects Versions: 0.9.12
>            Reporter: Thorbjoern Ravn Andersen
>            Assignee: Logback dev list
>            Priority: Minor
> Apparently the System.nanoTime() is better suited than System.currentTimeMillis() for the relative time measurements done in logback, plus hopefully the resolution is finer giving more reliable figures for small operations.   Apparently the currentTimeMillis resolution is 15 ms under XP where the nanoTimer is much finer.  Under OS X both have a resolution of 1 ms.
> As logback requires Java 5 where this is standard, it would be simple to make the switch.
> Note:  http://www.techper.net/2008/08/10/systemcurrenttimemillis-systemnanotime-and-their-resolution/ lists that it may be relevant to create a factory for this instead of just hardlinking to the java runtime so it is possible to link to another time source:
> "A more robust timer with a 1msec resolution is LWJGL's Sys.getTime which uses TGT (time get time) on Windows and currentTimeMillis elsewhere."

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list