You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Ron Grabowski <ro...@yahoo.com> on 2006/08/01 05:03:26 UTC

Re: DO NOT REPLY [Bug 40145] New: - PatternLayout - %r doesn't do what the documentation says.

This is how log4net dealt with the issue:

http://issues.apache.org/jira/browse/LOG4NET-50

"
Rather than using the Process.StartTime the current time is captured
when the log4net library is loaded (when LogManager is initialised) and
this is used as the start time.
"

--- bugzilla@apache.org wrote:

> DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
> RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
> <http://issues.apache.org/bugzilla/show_bug.cgi?id=40145>.
> ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
> INSERTED IN THE BUG DATABASE.
> 
> http://issues.apache.org/bugzilla/show_bug.cgi?id=40145
> 
>            Summary: PatternLayout - %r doesn't do what the
> documentation
>                     says.
>            Product: Log4j
>            Version: 1.2
>           Platform: All
>         OS/Version: other
>             Status: NEW
>           Severity: minor
>           Priority: P2
>          Component: Layout
>         AssignedTo: log4j-dev@logging.apache.org
>         ReportedBy: mark.atwell@jpmorgan.com
> 
> 
> According to the Javadocs: %r - Used to output the number of
> milliseconds 
> elapsed since the start of the application until the creation of the
> logging 
> event.
> 
> In practice the initial time is actually initialised from when the 
> PatternLayout class is loaded and the static initialisers are fired.
> 
> Consider the following rather contrived and paraphrased example:
> 
> public class MyClass
> {
>  static final Logger logger = Logger.getLogger(MyClass.class);
> 
>  public static void main(String[] args) throws Exception
>  {
>   BasicConfigurator.configure();
> 
>   Thread.sleep(10 * 1000);
> 
>   logger.info("Hello, World!");
>  }
> }
> 
> The time reported at Hello, World is actually very close to zero.
> 
> AFAIK it seems to be practically impossible to know the app/JVM
> launch-time, 
> nonetheless it could be better.
> 
> Solutions I guess would be for the configuration call or, probably
> better, one 
> of the Logger.getLogger() calls initialised the time or forces load
> of the 
> PatternLayout class-load?
> 
> A workaround is to log something early and of course many apps do
> this so it 
> isn't a noted problem.
> 
> In practice this is probably not unique to any platform or possibly
> even 
> version of Log4J.
> 
> Do any of the other implementations suffer from the same problem.
> 
> -- 
> Configure bugmail:
> http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are the assignee for the bug, or are watching the assignee.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-dev-help@logging.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org