【问题标题】:How to define an additional Java log level?如何定义额外的 Java 日志级别?
【发布时间】:2013-02-28 09:37:05
【问题描述】:

standard Java logging 定义了以下日志级别:

  • 严重(最高)
  • 警告
  • 信息
  • 配置
  • 很好
  • 更精细
  • 最好的

这与RFC 5424 不兼容,因为它在 INFO 和 WARNING 之间缺少 NOTICE 级别。 Java 缺少一些额外的日志级别(错误、关键、警报和紧急情况),但 NOTICE 是让我很受伤的一个。

有没有办法扩展可能的日志级别列表以添加缺少的 NOTICE 级别?还是需要重写整个日志记录?

【问题讨论】:

    标签: java logging syslog


    【解决方案1】:

    这应该可行

    class Level2 extends Level {
        public static final Level2 NOTICE = new Level2("NOTICE", 850);
    
        private Level2(String name, int level) {
            super(name, level);
        }
    }
    

    【讨论】:

    • 这是从 FINEST = 300 到 SEVERE = 1000 的日志记录级别。INFO = 800 WARNING = 900
    • 如何使用这个例子(意思是:它可能更冗长一些)?
    【解决方案2】:

    感谢 Evgeniy。这是完整的例子:

    系统日志级别

    导入 java.util.logging.Level; 公共类 SyslogLevel 扩展级别 { 公共静态 SyslogLevel EMERG = new SyslogLevel("EMERG", 1100); 公共静态 SyslogLevel ALERT = new SyslogLevel("ALERT", 1000); 公共静态 SyslogLevel ERR = new SyslogLevel("ERR", 950); 公共静态 SyslogLevel WARNING = new SyslogLevel("WARNING", 900); 公共静态 SyslogLevel NOTICE = new SyslogLevel("NOTICE", 850); 公共静态 SyslogLevel INFO = new SyslogLevel("INFO", 800); 公共静态 SyslogLevel DEBUG = new SyslogLevel("DEBUG", 300); 受保护的 SyslogLevel(字符串名称、int 值、字符串 resourceBundleName) { 超级(名称,值,resourceBundleName); } protected SyslogLevel(字符串名称,整数值) { 超级(名称,值); } }

    日志记录

    导入 java.util.logging.Logger; 导入 java.util.logging.Level; 导入 java.util.logging.FileHandler; 导入 java.util.logging.SimpleFormatter; 公共类日志记录 { 公共静态无效主要(字符串 [] 参数) { 记录器 logger = Logger.getLogger("MyLog"); 文件处理程序 fh; 尝试 { fh = new FileHandler ("logging.log", true); logger.addHandler (fh); logger.setLevel (Level.ALL); fh.setFormatter (new SimpleFormatter()); logger.log(SyslogLevel.NOTICE,“运行!”); } 捕捉(java.io.IOException e){ e.printStackTrace(); } } }

    【讨论】:

    • 请注意,您在此示例中忘记了“CRITICAL”级别。不过谢谢,非常有用!
    • 为了更好地理解,您可以将原始 Levels 的数字级别添加为中间的 cmets...
    【解决方案3】:

    您可以扩展Level class 并提供更多功能。

    【讨论】:

    • 问题是是否以及如何,但您只回答了两者中的第一个。
    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多