- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在最后一次调用 check_logwarn 命令后添加了以下日志行 -
[Tue Nov 22 11:04:03 2016] [hphp] [10755:7f41af3ff700:6272:000001] [] SlowTimer [2086ms] at runtime/ext_m
ysql: slow query: SELECT b.bannerid, b.campaignid FROM ox_banners b, ox_campaigns c WHERE b.campaignid =
c.campaignid AND (b.status = 0 OR b.`updated` >= now() - INTERVAL 7 DAY) AND (c.status = 0 OR c.`updated`
>= now() - INTERVAL 7 DAY) AND b.updated >= '2016-11-22 11:03:01';
下面的 logwarn 命令,寻找 SlowTimer
,找到匹配的日志,如我所料(输出是在最后一次调用命令后添加的整个日志行)-
/usr/local/nagios/libexec/check_logwarn -d /tmp/logwarn_hiphop_error /mnt/log/hiphop/error_`(date +'%Y%m%d')`.log ".*SlowTimer.*"
但是,以下查找 SlowTimers
的命令也会找到匹配的日志,这是我不希望的 -
/usr/local/nagios/libexec/check_logwarn -d /tmp/logwarn_hiphop_error /mnt/log/hiphop/error_`(date +'%Y%m%d')`.log ".*SlowTimers.*"
我在 https://regex101.com/ 上测试了正则表达式和 /.*SlowTimer.*/g
匹配,而 /.*SlowTimers.*/g
不匹配任何内容。我认为这是非常简单的正则表达式,并且在各种风格中的工作方式相似。
当命令找不到任何匹配项时(例如,在上次调用后没有新的日志行时),这是我得到的输出 -
OK: No log errors found
当我查找 .*SlowTimers.*
时,我期待以上输出。
请查找logwarn Manual供引用。
最佳答案
认为您可能需要使用 -p
标志:
-p Change default match behavior to non-matching. By default, if a log
message doesn't match any of the positive or negative patterns, it is
considered a match. This flag reverses this behavior so that these
messages are considered non-matches.
此外,我对此可能是错误的,但认为正则表达式可以简化为 SlowTimers
而不是 .*SlowTimers.*
。它没有指定开始 (^
) 和结束 ($
),因此可以出现在文本中的任何位置。
关于regex - 无法使用 nginx logwarn 正确解析包含特定关键字的日志行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40740449/
在最后一次调用 check_logwarn 命令后添加了以下日志行 - [Tue Nov 22 11:04:03 2016] [hphp] [10755:7f41af3ff700:6272:00000
我已将我的网络应用程序设置为使用 Application Insights我正在 Azure 门户中接收数据。我还设置了Application Insights Logging with .NET我现
我是一名优秀的程序员,十分优秀!