【发布时间】:2021-03-01 14:30:42
【问题描述】:
我正在尝试读取日志文件以提取在特定时间生成的异常。 我已经执行了下面提到的命令来提取异常,但它会获取半异常字符串,因为 ThreadPool.java:1593) 文本在该字符串中包含 2 次。
awk -v from='09/02/21 06:41:15:738' -v to='ThreadPool.java:1593)' '$0 ~ from ,$0 ~ to {print $0}' mylog.log
示例日志文件。
[09/02/21 06:41:15:738 IST] ERROR root - Error creating request
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at com.abc.tx.util.ThreadPool$Worker.run(ThreadPool.java:1593) Caused by : org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at com.abc.tx.util.ThreadPool$Worker.run(ThreadPool.java:1593)
从命令接收到的输出
[09/02/21 06:41:15:738 IST] ERROR root - Error creating request
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at com.abc.tx.util.ThreadPool$Worker.run(ThreadPool.java:1593)
给定的命令跳过下面的日志
Caused by : org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at com.abc.tx.util.ThreadPool$Worker.run(ThreadPool.java:1593)
需要帮助才能从日志文件中提取完整的跟踪记录。
提前致谢
【问题讨论】:
-
感谢您以代码的形式展示您的努力,继续努力。您能否分享更多日志(仅限样本),这将帮助我们知道我们需要留下哪些行以及需要打印哪些行?这将使我们更好地理解您的问题,谢谢。
-
示例日志文件摘录是全部发布在一行还是单独的行上?
-
当我查看日志文件时,它将显示在不同的行中