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
}
}
如果您要寻找解析日志的解决方案,则无法保证日志级别包含警告,它可能会设置为错误,然后您会错过消息
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.
}
}
添加回答
举报