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(...);
}
}
There are two not-very-important reasons why having a single static (probably final) instance is better than calling
getLoggerall the time.Logger.getLoggerall 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.