创建Logger静态实现

时间:2015-12-31 16:42:16

标签: java logging

我目前正在寻找为我正在进行的半大型项目实施日志记录类。我的实现是这样的......

//In the primary driver class
public static final Logger log = new Logger(/*logger config*/);

//In subclasses
DriverClass.log(/*log inputs*/);

话虽这么说,我最近发现一些文章提到每个班级都有一个记录器。这是我目前正在使用的更好的实现吗? (参考:logging static methods in a parent class)。从大多数参考文献来看,我发现这是正确的方法,所以为什么我的方法从不同的类调用它是错误的?

另外,我的实现还有各种级别的日志(Debug,Info等)。我想知道为每种日志类型分配严重性是否是一个好习惯。我将在下面写出一个例子......

错误(严重性1) - 需要解决,但不是关键系统故障(例如,客户设法创建导致问题的错误配置)。

错误(严重级别5) - 整个系统崩溃,没有任何内容正在运行。

我看到有些人做了与此类似的事情(http://docs-legacy.fortinet.com/frec/admin_hlp/1-1-0/index.html#page/FortiRecorder_Help/about_log_severity_levels.html),严重程度表示"类型"然而,我应该澄清,我的意思是将两者结合起来,而不是使用其中一种。

1 个答案:

答案 0 :(得分:0)

每个类都有一个记录器可以在日志中实现更多粒度。例如,您可以拥有以下结构的消息:[DATE] [CLASS NAME] [SEVERITY] [MESSAGE]。在日志中使用类名可以节省时间,以便从实际生成的日志中挖掘出来。

作为另一个规则,拥有类名还可以允许您控制每个类可以向日志发出的内容。考虑部署与第三方通信的类。这是第一次,您将向控制台发送信息日志,以了解实时环境的情况。如果/当您看到一切正常时,您只需关闭该特定类的信息消息,而不是执行另一个删除消息日志的部署。