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