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.
}
}
添加回答
舉報