Den 21/03/11 00.34, Rusty Wright skrev:
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.
You need the logger field to be static if you have any static methods you want to do logging in, and not create an explicit logger in the code in each static method.

I don't think that it matters in modern logging systems how many times getLogger is called.
I've also wondered why everyone uses .class; I've been using this.getClass(); for example,

Because "this.getClass()" only works for instance fields, not static fields.

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.

You can also make Eclipse put in the name of the current class, so that doesn't matter much.


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.

Don't think so.

--
  Thorbjørn Ravn Andersen  "...plus... Tubular Bells!"

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

Reply via email to