背景:对外提供的接口使用过滤器TraceLogProviderFilter打印了请求相关的日志信息,所以可以根据日志中的关键词TraceLogProviderFilter来统计接口请求次数

日志打印格式

2020-02-23 12:06:49.156 INFO  [com.zkh360.service.punchout.filter.TraceLogProviderFilter] [44295083-2cb8-436d-b976-e743985f25e4](DubboServerHandler-thread-440:[]) 【请求方法:getProductPrice,请求参数:"P88069",["HT2895"],,提供者耗时:19ms】;

需求:统计接口每日调用次数

一、grep

命令格式:grep -c 关键词 日志文件

说明:-c 符合样式的行数

root@iZbp1crt1zqre1ar8:/HD/logs/punchout# grep -c 'TraceLogProviderFilter' punchout.log 
154621
root@iZbp1crt1zqre1ar8:/HD/logs/punchout# 

二、grep和wc结合

命令格式:grep 关键词 日志文件 | wc -l

说明:grep 查找,wc -l 统计行数,配置使用表示按行统计关键词出现的次数,一行出现多次只算一次,此命令可以针对一行中会多次出现搜索词的查询

root@iZbp1crt1zqre1ar8:/HD/logs/punchout# grep 'TraceLogProviderFilter' punchout.log | wc -l
146134
root@iZbp1crt1zqre1ar8:/HD/logs/punchout#

三、zgrep

命令格式:grep 关键词 日志文件 | wc -l

说明:由于日志文件很大,现在很多日志都会每天按大小切分,并以压缩格式保存,这类文件就需要使用zgrep来统计

root@iZbp1crt1zqre1ar8:/HD/logs/punchout# zgrep -c 'TraceLogProviderFilter' punchout.2020-02-23_1.log.gz 
274647
root@iZbp1crt1zqre1ar8:/HD/logs/punchout# zgrep -c 'TraceLogProviderFilter' punchout.2020-02-23_*.log.gz 
punchout.2020-02-23_1.log.gz:274647
punchout.2020-02-23_2.log.gz:274995
root@iZbp1crt1zqre1ar8:/HD/logs/punchout# 

如果日志有切分,可以使用匹配符*来统计

 

 

 

Logo

更多推荐