为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 记录器中,如何添加检查以查看它们是否输出某个日志级别的代码

在 Java 记录器中,如何添加检查以查看它们是否输出某个日志级别的代码

慕斯709654 2021-08-25 10:05:18
我正在制作一个使用我构建的自定义库的程序。他们都在使用 Java util 日志记录类并制作日志文件。如果使用警告级别制作日志,我想要代码将布尔值设置为 true。除了扫描日志文件寻找警告评论,我还能做些什么来实现这一目标?
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

我不会尝试分析日志文件,而是将库实现更改为执行以下操作:


class Parser {

    private List<String> warnings = new ArrayList<>();


    public Boolean hasWarnings() {

        return warnings.size() > 0

    }


    public List<String> getWarnings() {

        return warnings;

    }


    public Object parse(String xml) {

        // parse the xml


        if (needToIssueWarning) {

            String msg = "warning!";

            warnings.add(msg);

            logger.warn(msg);

        }


        return parsedData;

    }

}

并在呼叫站点:


private void run() {

    Parser parser = new Parser();

    parsedData = parse(xmlString);

    if (parser.hasWarnings()) {

        warnings = parser.getWarnings();

        //do something with the warnings

    }

}

如果您要寻找解析日志的解决方案,则无法保证日志级别包含警告,它可能会设置为错误,然后您会错过消息


查看完整回答
反对 回复 2021-08-25
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

创建查找WARNING级别消息的java.util.logging.Filter。在根记录器的处理程序上安装该过滤器。


public class WarningFilter implements Filter {


    @Override

    public boolean isLoggable(LogRecord record) {

        if (Level.WARNING.equals(record.getLevel())) {

           //Set your boolean.

        }

        return true; //Allow all records to pass.

    }

}


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信