In the log4j documentation they recommend "statically instantiating a logger in each 
class, with the logger name equal to the fully qualified name of the class."  For 
example,

  static Logger logger = Logger.getLogger(MyApp.class);

I've never understood why it's necessary to declare the logger static.  I've 
assumed/guessed that it is to reduce the number of calls to getLogger.

The slf4j documentation doesn't use static; for example,

  final Logger logger = LoggerFactory.getLogger(Wombat.class);

I've also wondered why everyone uses .class; I've been using this.getClass(); 
for example,

  private final transient Logger log = LoggerFactory.getLogger(this.getClass());

The advantage of that is that you never have to worry about changing that line; 
you can copy and paste it everywhere, and set up eclipse to automatically put 
that line in when you create a new class.

The reason I ask is that I read the article by Michael Glauche, "Logging with SLF4J 
and Guice", at http://glauche.de/2009/08/24/ and I don't see an advantage of his 
method over using this.getClass().

Using this.getClass() has worked for me, unless I need to use the logger in a 
static method, so I'm wondering if there is something I'm overlooking.

Thanks

--
0x2B | ~0x2b --  Hamlet

_______________________________________________
slf4j-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/slf4j-user

Reply via email to