我正在使用日志监视应用程序,我只需要从名为CATALINA.OUT的文件中获取错误级别的日志。有这么多的日志,只有我需要从中获取错误日志级别[整个异常]。请为此提供帮助。
答案 0 :(得分:0)
假设您使用的是Linux,则可以像这样从终端上使用grep
:
$ grep 'ERROR' CATALINA.OUT
来自$ man grep
:
grep在每个文件中搜索PATTERN。文件“-”代表 标准输入。如果未提供文件,则递归搜索将检查 工作目录和非递归搜索读取标准输入。通过 默认情况下,grep打印出匹配的行。
答案 1 :(得分:0)
要在运行时观看:
$ tail -f /var/log/tomcat8/catalina.out | grep 'ERROR'
答案 2 :(得分:0)
我提出了一种高级方法来处理此问题(假设您无权访问记录器配置)
09:42:55,142调试[org.jboss.as.config](MSC服务线程1-6)已配置的系统属性...
因此,区分何时开始新日志记录的模式是:
TIME] [space] [LOG_LEVEL] [space] [classeName] [space] [thread] [message
为简单起见,我建议您将日志记录保存到列表中。
下面为您的读者提供一个简单的算法:
open stream
While end of log file is not reach
reading
if the line starts with the pattern “TIME][space][LOG_LEVEL…” then
extract the log level of what you read until now
if logLevel equals error then
persist what I read until now excluding the current line
create a new log record object
else
clear your log record object
endif
endif
Store the current line into your log record object
End of while
close stream
在您的应用程序中,要求用户加载日志文件,您只需执行阅读器并显示结果即可。
有很多实现阅读器的方法,因此,如果要实现概念证明,只需在Java中创建一个阅读器即可逐行读取,例如:java 8 stream read a file line by line
在工作时,您可以观察到日志,准确记录您所需要的摘录...