Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Log4J - When to configure?

 
Scott Selikoff
author
Saloon Keeper
Posts: 4020
18
Eclipse IDE Flex Google Web Toolkit
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Each class in my project establishes a logger with the call:



I'd like to configure the Log4J using the call with:



Question, when should this call be made? Is the order that it happens relevant to when Logger.getLoger() is called?

The reason I ask is the pattern used in my code wraps Logger.getLogger(...) in a helper class that calls DOMConfigurator.configure(...) each time the Logger.getLogger(...) and I think I'm hitting an intermittent concurrency issue of some kind from the frequent calls to configure made by each class as it instatiates. The logger start ups fine, but stops writing to disk early in the startup process. A subsequent call to DOMConfigurator.configure() can reestablish the logger writing ability, but I'd like to know why it sometimes loses the ability to write to disk on startup.
 
Scott Selikoff
author
Saloon Keeper
Posts: 4020
18
Eclipse IDE Flex Google Web Toolkit
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Nevermind about the concurrency issue, found the cause, still not sure when configure() should be called. Before any loggers initialize, after, or does it not really matter?
 
Paul Clapham
Sheriff
Posts: 21316
32
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Call it as soon as possible. Log4j will initialize itself as soon as it can, i.e. as soon as you first do that. It isn't possible for you to do that before log4j's initialization.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic