После моего предыдущего вопроса grep, если следующие X строк не содержит определенной строки Я хотел бы получить помощь, чтобы сделать awk более простым.
Учитывая следующий журнал:
2018-04-04 04:37:41,916 [main] DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true
2018-04-04 04:37:41,916 [main] DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................null
2018-04-04 04:37:41,916 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............null
2018-04-04 04:37:41,916 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............null
2018-04-04 04:48:43,209 [housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Before cleanup stats (total=13, active=2, idle=11, waiting=0)
2018-04-04 05:16:19,226 [housekeeper] DEBUG not-relevant...
2018-04-04 05:45:28,383 [housekeeper] WARN com.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for com.mysql.jdbc.JDBC4Connection@2f350071, stack trace follows
java.lang.Exception: Apparent connection leak detected
at com.sql.HikariConnectionPool.getConnection(java:)
at com.DBConnection.getConn(java:)
at com.DBConnection.getConn(java:)
at com.EAgent.checkER(aaa.java:)
at com.EAgent$EExecuter.run(aaa.java:)
2018-04-04 05:55:54,425 [housekeeper] DEBUG not-relevant...
2018-04-04 04:48:13,208 [housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Before cleanup stats (total=13, active=0, idle=13, waiting=0)
2018-04-04 04:48:13,208 [housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - After cleanup stats (total=13, active=0, idle=13, waiting=0)
2018-04-04 05:58:16,814 [DBPool housekeeper] WARN com.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for com.mysql.jdbc.JDBC4Connection@45df031, stack trace follows
java.lang.Exception: Apparent connection leak detected
at com.HikariConnectionPool.getConnection(HikariConnectionPool.java:)
at com.DBConnection.getConn(aaa.java:)
at com.DBConnection.getConn(aaa.java:)
at com.m.checkUC(aaa.java:)
at com.m.run(aaa.java:)
at java.c.ThreadPoolExecutor.runWorker(aaa.java:)
at java.c.ThreadPoolExecutor$Worker.run(aaa.java:)
at java.lang.Thread.run(aaa.java:)
2018-04-04 04:37:41,921 [main] INFO com.zaxxer.hikari.HikariDataSource - Started.
2018-04-04 04:49:43,209 [housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Before cleanup stats (total=11, active=0, idle=11, waiting=0)
2018-04-04 04:49:43,209 [housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - After cleanup stats (total=11, active=0, idle=11, waiting=0)
Мне нужен awk-код, фильтрующий по следующим условиям:
1. Строка начинается с цифр.
2. Содержит: "Ошибка тайм-аута" или "Обнаружение утечки соединения" или "ПРЕДУПРЕЖДЕНИЕ"
3. Не содержит EAgent (исключить - даже если содержит WARN или другой термин из #2)
Таким образом, не нужно будет добавлять в формулу INFO и DEBUG и другие нерелевантные строки лога - она будет автоматически проигнорирована.
(Искать только то, что нам нужно, а не то, что нам не нужно...)
Вывод должен представлять только вторую трассировку стека WARN без «EAgent»:
2018-04-04 05:58:16,814 [DBPool housekeeper] WARN com.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for com.mysql.jdbc.JDBC4Connection@45df031, stack trace follows
java.lang.Exception: Apparent connection leak detected
at com.HikariConnectionPool.getConnection(HikariConnectionPool.java:)
at com.DBConnection.getConn(aaa.java:)
at com.DBConnection.getConn(aaa.java:)
at com.m.checkUC(aaa.java:)
at com.m.run(aaa.java:)
at java.c.ThreadPoolExecutor.runWorker(aaa.java:)
at java.c.ThreadPoolExecutor$Worker.run(aaa.java:)
at java.lang.Thread.run(aaa.java:)
Спасибо
WARN
строк, пожалуйста, добавь ожидаемый результат в свой пост, тогда я это исправлю. Дайте мне знать, как только вы отредактируете свой пост с ожидаемым результатом. 07.04.2018