gpt4 book ai didi

java - 如何减少每个类中的 Logger.getLogger(...) 样板

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:55 25 4
gpt4 key购买 nike

要在 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 staticprivate 字段,但除此之外没有明显的改进。

(有一些不好的想法,比如 public static “全局”变量,或者在“通用”基类中的 private static 声明。但这些都是不好的想法……不是更好的方法。)

但是,嘿,声明本地记录器对象的一行代码很难“侵入”……是吗?

关于java - 如何减少每个类中的 Logger.getLogger(...) 样板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com