日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


一個攔截器和一個awk命令,秒查線上超時接口

 

 

介紹

Spring Mvc攔截器的作用很多,舉幾個例子

1.記錄接口響應時間

2.判斷用戶是否登錄

3.判斷用戶的權限

今天就用一個攔截器和一個awk命令,秒查線上超時接口

一個攔截器

我們要寫自己的攔截器一般有兩種方式。

1.實現HandlerInterceptor接口

2.繼承HandlerInterceptorAdapter抽象類

我就直接繼承了HandlerInterceptorAdapter抽象類,按需重寫部分實現即可。

HandlerInterceptor有如下3個方法

preHandler:在controller執行之前調用

postHandler:controller執行之后,且頁面渲染之前調用

afterCompletion:頁面渲染之后調用,一般用于資源清理操作

寫一個記錄接口響應時間的攔截器

一個攔截器和一個awk命令,秒查線上超時接口

 

 

@Slf4j
public class SystemInterceptor extends HandlerInterceptorAdapter {

 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 request.setAttribute("request-starttime", System.currentTimeMillis());
 log.info("request enter:{}", request.getRequestURI());
 return true;
 }

 @Override
 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 Long startTime = (Long) request.getAttribute("request-starttime");
 if (startTime != null) {
 long cost = System.currentTimeMillis() - startTime;
 log.info("request cost:[" + request.getRequestURI() + ", "
 + request.getQueryString() + "] " + cost);
 }
 }
}

配置攔截器

 

一個攔截器和一個awk命令,秒查線上超時接口

 

 

一個awk命令

awk是一個文本處理工具,通常用于處理數據并生成結果報告

語法格式

第一種形式

awk 'BEGIN{}pattern{commands}END{}' file_name
一個攔截器和一個awk命令,秒查線上超時接口

 

語法格式解釋

BEGIN正式處理數據之前

pattern匹配模式

{commands}匹配命令,可能多行

END處理完所有匹配數據后執行

第二種形式

standard output | awk 'BEGIN{}pattern{commands}END{}'

awk的內置變量

一個攔截器和一個awk命令,秒查線上超時接口

 

內置變量含義

$0整行內容

$1-$n當前行的第1-n個字段(按照指定分隔符分割后)

NF(Number Field)當前行的字段個數,也就是多少列

NR(Number Row)當前行的行號,從1開始計數

FNR(File Number Row)多文件處理時,每個文件行號單獨計數,都是從0開始

FS(Field Separator)輸入字段分割符。不指定默認以空格或者Tab鍵分割

RS(Row Separator)輸入行分割符。默認回車n

OFS(Output Field Sepatator)輸出字段分割符。默認為空格

ORS(Output Row)輸出行分隔符。默認為回車

FILENAME當前輸入的文件名字

ARGC命令行參數個數

ARGV命令行參數數組

看一下/etc/passwd文件的內容

cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

輸出文件的每行內容

awk '{print $0}' /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

輸出第二列內容

需要指定分隔符:

awk 'BEGIN{FS=":"}{print $2}' /etc/passwd

x
x
x

不需要指定分割符,默認空格,tab鍵,多個也可以分隔(如一個空格+一個tab鍵)

show.txt文件內容如下

# 空格分隔
Python JAVA php
# tab鍵分隔
flink	hadoop	storm
awk '{print $1}' show.txt

輸出如下:

python
flink

攔截器和awk命令都介紹完畢。

grep 'request cost' xxx.log | awk ' $7 >1000 {print $0}'  

上面這個命令就是打印xxx.log中接口響應時間超過1s的日志,相信經過前面的介紹,你已經看懂了

效果演示

省略了部分內容

[INFO] request cost:[/api/message/getKfConversation, null] 1005
[INFO] request cost:[/api/kf/meet, null] 1004

分享到:
標簽:awk
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定