Every time you write a new class, you must declare it as follows:
private static Logger logger = Logger.getLogger(Test.class);
Isn’t this very troublesome? Is there any way to set the Logger to a class that can be called statically, directly call the info, error and other methods, and at the same time print out the current class, thread number and other information?
漂亮男人2017-05-17 10:06:39
You can simply encapsulate it to achieve what you want, such as building a class to encapsulate Logger and exposing several static interfaces. As for why many codes are written as private static Logger logger = Logger.getLogger(Test.class);
, it is actually mainly to improve the flexibility and accuracy of logs.
漂亮男人2017-05-17 10:06:39
Statementlog
是因为他可以定义不同的logger name
可以通过logger name
定制自己的输出方式, 比如level
, appender
...etc
If your logs are processed in the same way, you can declare it公共的静态 log 对象
, 需要的地方使用该log
There will be no duplicate declarations.
For example:
import static xxx.GlobalLogs.log;
log.debug("...");
log.info("...");
//...
Of course you can also use lombok to simplify your code.