Brady
Brady

Reputation: 101

how to select multiple line in log

I try to make file. It has all error message in particular log file.

This is log contents.

[ERROR] 2015-08-05 14:20:10 HandlerExceptionResolver -
org.springframework.jdbc.BadSqlGrammarException:
.....
..e(SQLErrorCodeSQLExceptionTranslator.java:231)
..ractFallbackSQLExceptionTranslator.java:73)
..Possible(MyBatisExceptionTranslator.java:73)
..Interceptor.invoke(SqlSessionTemplate.java:371)
..electOne(Unknown Source)
..emplate.selectOne(SqlSessionTemplate.java:163)
[INFO] 2015-08-05 14:20:39 LoggingInterceptor -  /products/430

and I try it

awk '$1 ~/^\[ERROR\]$/{print$0}' original.log > extract.log

but the result is only one line.

[ERROR] 2015-08-05 14:20:10 HandlerExceptionResolver -

my expected is..

[ERROR] 2015-08-05 14:20:10 HandlerExceptionResolver -
org.springframework.jdbc.BadSqlGrammarException:
.....
..e(SQLErrorCodeSQLExceptionTranslator.java:231)
..ractFallbackSQLExceptionTranslator.java:73)
..Possible(MyBatisExceptionTranslator.java:73)
..Interceptor.invoke(SqlSessionTemplate.java:371)
..electOne(Unknown Source)
..emplate.selectOne(SqlSessionTemplate.java:163)

I want to know how to extract all error message.

Upvotes: 1

Views: 88

Answers (1)

jas
jas

Reputation: 10865

One idea would be to turn printing off and on depending on the level you want to print:

$ cat log.awk
/^\[[A-Z]+\]/ { flag = 0 }
/^\[ERROR\]/ { flag = 1 }
flag

$ cat log.txt
[ERROR] 2015-08-05 14:20:10 HandlerExceptionResolver -enter code here
org.springframework.jdbc.BadSqlGrammarException:enter code here
.....enter code here
..e(SQLErrorCodeSQLExceptionTranslator.java:231)enter code here
..ractFallbackSQLExceptionTranslator.java:73)enter code here
..Possible(MyBatisExceptionTranslator.java:73)enter code here
..Interceptor.invoke(SqlSessionTemplate.java:371)enter code
..electOne(Unknown Source)enter code here
..emplate.selectOne(SqlSessionTemplate.java:163)enter code here
[INFO] 2015-08-05 14:20:39 LoggingInterceptor - /products/430
[ERROR] some other
multiline
error
[WARN] A warning not an error

$ awk -f log.awk log.txt
[ERROR] 2015-08-05 14:20:10 HandlerExceptionResolver -enter code here
org.springframework.jdbc.BadSqlGrammarException:enter code here
.....enter code here
..e(SQLErrorCodeSQLExceptionTranslator.java:231)enter code here
..ractFallbackSQLExceptionTranslator.java:73)enter code here
..Possible(MyBatisExceptionTranslator.java:73)enter code here
..Interceptor.invoke(SqlSessionTemplate.java:371)enter code
..electOne(Unknown Source)enter code here
..emplate.selectOne(SqlSessionTemplate.java:163)enter code here
[ERROR] some other
multiline
error

Upvotes: 1

Related Questions