给定Java应用程序的标准日志文件:
INFO [main] (AutoMain.java:133) - querying data 1
DEBUG [main] (AutoMain.java:142) - data 1 count: 23180
INFO [main] (AutoMain.java:151) - querying data 2
ERROR [main] (AutoMain.java:607) - Failure in auto
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.(Socket.java:434)
at java.net.Socket.(Socket.java:211)
at com.myCompany.client.ClientIOFactory$1.(ClientIOFactory.java:17)
at com.myCompany.client.ClientIOFactory.lambda$clientIOFactoryFromSocket$0(ClientIOFactory.java:15)
at com.myCompany.client.queryData(Client.java:83)
at com.myCompany.client.queryData(Client.java:91)
at com.myCompany.queryOptData(InstantAutomaton.java:153)
at com.myCompany.AutoMain.main(InstantAutomaton.java:426)
什么是正则表达式,以匹配任何Java的整个堆栈跟踪
Exception
很容易匹配任何包含“exception”的单行:
grep "Exception" log.txt
但我也想要所有随后的“at”语句。所以匹配的结果字符串应该是:
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.(Socket.java:434)
at java.net.Socket.(Socket.java:211)
at com.myCompany.client.ClientIOFactory$1.(ClientIOFactory.java:17)
at com.myCompany.client.ClientIOFactory.lambda$clientIOFactoryFromSocket$0(ClientIOFactory.java:15)
at com.myCompany.client.queryData(Client.java:83)
at com.myCompany.client.queryData(Client.java:91)
at com.myCompany.queryOptData(InstantAutomaton.java:153)
at com.myCompany.AutoMain.main(InstantAutomaton.java:426)
提前感谢您的考虑和回应。
给定Java应用程序的标准日志文件:INFO [main] (AutoMain.java:133) - querying data 1DEBUG [main] (AutoMain.java:142) - data 1 count: 23180INFO [main] (AutoMain.java:151) - querying data 2ERROR [main] (AutoMain.java:60...
使用正则式遇到
异常
Exception in thread "main"
java
.lang.StackOverflowError
at
java
.util.regex.Pattern$GroupHead.match(Pattern.
java
:4166)
at
java
.util.regex.Pattern$Branch.match(Pattern.
java
:4114)
运行参数设...
笔者在使用logstash做日志解析的时候,需要根据日志源(source字段)来进行判断,以何种格式进行解析。
此时source字段来源非常多,比如a,b, c,在此之下有分为很多种日志,如1,2,3.此时我的source就有
a1,a2,a3,b1,b2,b3,c1,c2,c3,如果我现在只想解析1这种类型的日志,而且我不知到之后还会引入多少个源。那么采用正则
匹配
来判断是必然的了。
正则表达式写法如下
1 首先得在首尾叫上’/’,表示这是个正则 如 [a] =~ /****/
2 接下是几个常用的写法