要在 Java 中使用记录器,现在我使用如下代码:
Logger logger = Logger.getLogger("MyLog");
FileHandler fh;
try {
// This block configure the logger with handler and formatter
fh = new FileHandler("c:\\MyLogFile.log", true);
logger.addHandler(fh);
logger.setLevel(Level.ALL);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
// the following statement is used to log any messages
logger.log(Level.WARNING,"My first log");
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
但是为每个类文件添加这个总是让我有些不安:
Logger l = Logger.getLogger("MyLog");
我怎样才能重构出这种重复?
最佳答案
Is there a better recommended way for logging, which could be less intrusive/less repeative but offers the same or even better functions?
您可以将 l
设为类的 private static
或 private
字段,但除此之外没有明显的改进。
(有一些不好的想法,比如 public static
“全局”变量,或者在“通用”基类中的 private static
声明。但这些都是不好的想法……不是更好的方法。)
但是,嘿,声明本地记录器对象的一行代码很难“侵入”……是吗?
关于java - 如何减少每个类中的 Logger.getLogger(...) 样板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176285/