Reputation: 147
I am using Java util Logger. According to the documentation for Logger.getLogger method, it says, "Find or create a logger for a named subsystem. If a logger has already been created with the given name it is returned. Otherwise a new logger is created.". Would there still be any benefit in calling it only once per class?
Option 1:
public class Myclass
static Logger logger = Logger.getLogger(Myclass.class);
public void method1() {
logger.log(...);
}
public void method2() {
logger.log(....);
}
}
Option 2:
public class Myclass {
public void method1() {
Logger.getLogger(Myclass.class).log(...);
}
public void method2() {
Logger.getLogger(Myclass.class).log(...);
}
}
Upvotes: 9
Views: 26518
Reputation: 54306
There are two not-very-important reasons why having a single static (probably final) instance is better than calling getLogger
all the time.
Logger.getLogger
all the time. It's not something to worry about unless you are calling it millions of times in a tight loop, but it's there.That said, personal preference is vastly more important than either of these reasons. Option 1 is a common approach, but if you prefer option 2 then by all means use it. It's not going to hurt your code.
Upvotes: 6
Reputation: 8852
They only benefit I see is that shorter log lines make code look clearer. But - in practice there is no difference at runtime
Upvotes: 0