最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx自定義日志中時(shí)間格式的操作方法

 更新時(shí)間:2023年11月25日 09:56:28   作者:成王敗寇~  
工作需要對(duì)接內(nèi)部的日志中臺(tái),對(duì)日志打印有固定的格式要求,為了使Nginx的access日志也能被采集,需要對(duì)日志格式進(jìn)行自定義,這篇文章主要介紹了Nginx自定義日志中時(shí)間格式,需要的朋友可以參考下

背景

工作需要對(duì)接內(nèi)部的日志中臺(tái),對(duì)日志打印有固定的格式要求,為了使Nginx的access日志也能被采集,需要對(duì)日志格式進(jìn)行自定義,要求日志格式為:

yyyy-MM-dd HH:mm:ss.SSS LOG_LEVEL LOG_MSG ---> 時(shí)間格式+打印級(jí)別+業(yè)務(wù)日志

如:

23-11-18 17:34:23.738 DEBUG monitor-7 org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug:137: xxxxx

但目前我們Nginx按照默認(rèn)格式配置,大致如下:

192.23.4.5 -- [18/Nov/2023L18:58:52 +0800] "GET /api/cluster HTTP/1.1" 200 155 "https://xxx.xx.xx.x"

時(shí)間格式無(wú)法不符合要求,并且未區(qū)分日志級(jí)別,因此,需要對(duì)日志打印格式進(jìn)行自定義

自定義日志格式配置

1.重新定義日志格式

# 原日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "http_referer" "$http_user_agent" "$http_x_forwarded_for";
# 修改后日志格式
log_format main '$time_zh_ms $log_level - $remote_addr - $remote_user "$request" $status $body_bytes_sent "http_referer" "$http_user_agent" "$http_x_forwarded_for";
# 對(duì)比修改前后差異,其實(shí)就是
1.自定義了$time_zh_ms,在下面的配置中,將其設(shè)置為yyyy-MM-dd HH:mm:ss.SSS格式
2.自定義了$log_level,為日志打印級(jí)別,下面的配置中,將按照請(qǐng)求響應(yīng)碼來(lái)判斷為何種日志打印級(jí)別
以上只是為了滿足日志采集需要,其他字段可按實(shí)際情況變動(dòng)

2.定義時(shí)間格式的轉(zhuǎn)換

Nginx默認(rèn)支持的時(shí)間格式為iso8601,此處我們需要通過(guò)獲取到內(nèi)置時(shí)間變量$time_iso8601和$msec,具體配置如下:

# 將iso8601格式時(shí)間轉(zhuǎn)換為yyyy-MM-dd HH:mm:ss格式
# 按照正則將時(shí)間字符串分割為6部分,分別為年月日時(shí)分秒,再拼接到$time_zh自定義變量中
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") {
  set $year $1;
  set $month $2;
  set $day $3;
  set $hour $4;
  set $minutes $5;
  set $seconds $6;
  set $time_zh "$1-$2-$3 $4:$5:$6";
}
# 獲取毫秒時(shí)間戳,并拼接到$time_zh之后
if ($msec ~ "(\d+)\.(\d+)") {
  set $time_zh_ms $time_zh.$2
}
# 注意:$time_zh_ms其實(shí)就是在log_format中定義的日志格式第一個(gè)字段

3.根據(jù)響應(yīng)碼定義日志級(jí)別

Nginx的access日志默認(rèn)是沒(méi)有日志級(jí)別這一說(shuō)法的,此處可視為我們?yōu)榱诉m配業(yè)務(wù)而做的規(guī)則,在我們的使用場(chǎng)景中,將返回碼為4或5的請(qǐng)求,視為錯(cuò)誤,打印為ERROR級(jí)別,其他請(qǐng)求為INFO級(jí)別

# 如果http返回碼為4或5開(kāi)頭,則設(shè)置log_level為ERROR,否則為INFO
map $status $log_level {
  ~^[45] ERROR;
  default INFO;
}
# 此處$status為Nginx內(nèi)置變量,代表請(qǐng)求的響應(yīng)碼,log_level為自定義變量

4.設(shè)置日志使用具體格式并打印到文件

access_log /dev/stdout main;
access_log /etc/nginx/logs/access.log main;
error_log /dev/stdout;
error_log /etc/nginx/logs/error.log;

5.完整配置示例截圖

6.日志打印效果

到此這篇關(guān)于Nginx自定義日志中時(shí)間格式的文章就介紹到這了,更多相關(guān)nginx自定義日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx編譯安裝出現(xiàn)的常見(jiàn)錯(cuò)誤及解決方法

    nginx編譯安裝出現(xiàn)的常見(jiàn)錯(cuò)誤及解決方法

    這篇文章給大家介紹了nginx在編譯安裝過(guò)程中容易出現(xiàn)的常見(jiàn)錯(cuò)誤以及解決方法,文中有詳細(xì)的代碼講解,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • 使用Docker主機(jī)啟動(dòng)Nginx服務(wù)器的完整步驟詳解

    使用Docker主機(jī)啟動(dòng)Nginx服務(wù)器的完整步驟詳解

    Docker是一個(gè)開(kāi)源的容器化平臺(tái),用于輕松地打包、部署和運(yùn)行應(yīng)用程序,而Nginx是一個(gè)高性能的開(kāi)源反向代理服務(wù)器,也是一個(gè)流行的Web服務(wù)器,這篇文章主要給大家介紹了關(guān)于使用Docker主機(jī)啟動(dòng)Nginx服務(wù)器的完整步驟,需要的朋友可以參考下
    2024-07-07
  • nginx 常用指令 try_files allow root alias的使用

    nginx 常用指令 try_files allow root ali

    本文主要介紹了nginx 常用指令 try_files allow root alias的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Nginx代理導(dǎo)致請(qǐng)求頭某些內(nèi)容丟失的問(wèn)題解決

    Nginx代理導(dǎo)致請(qǐng)求頭某些內(nèi)容丟失的問(wèn)題解決

    本文主要介紹了在使用NGINX代理時(shí)請(qǐng)求頭中的下劃線被自動(dòng)忽略的問(wèn)題,通過(guò)兩種方法解決了這個(gè)問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • nginx+ingress 413問(wèn)題排查過(guò)程

    nginx+ingress 413問(wèn)題排查過(guò)程

    處理413錯(cuò)誤需調(diào)整Nginx的client_max_body_size及Ingress配置,合理設(shè)置body-size,若無(wú)效,檢查后端限制,注意過(guò)大可能影響安全
    2025-08-08
  • nginx配置前端請(qǐng)求轉(zhuǎn)發(fā)到指定的后端ip方式

    nginx配置前端請(qǐng)求轉(zhuǎn)發(fā)到指定的后端ip方式

    文章主要解釋了Nginx配置中如何通過(guò)location規(guī)則將前端靜態(tài)資源和后端接口請(qǐng)求進(jìn)行分流,并詳細(xì)描述了請(qǐng)求轉(zhuǎn)發(fā)到后端的具體過(guò)程,包括rewrite規(guī)則、代理協(xié)議設(shè)置、請(qǐng)求頭透?jìng)?、代理地址指定及失敗重試機(jī)制等
    2026-05-05
  • Nginx配置代理gRPC的方法

    Nginx配置代理gRPC的方法

    本篇文章主要介紹了Nginx配置代理gRPC的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • nginx 平滑重啟與升級(jí)的實(shí)現(xiàn)方法

    nginx 平滑重啟與升級(jí)的實(shí)現(xiàn)方法

    有時(shí)候我們需要平滑重啟nginx服務(wù),防止出現(xiàn)問(wèn)題,這里簡(jiǎn)單的總結(jié),方便需要的朋友
    2013-02-02
  • nginx熱部署的原理分析:nginx -s reload

    nginx熱部署的原理分析:nginx -s reload

    這篇文章主要介紹了nginx熱部署的原理分析:nginx -s reload,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)詳解

    Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)的相關(guān)資料,本文適用于需要在nginx里獲取http請(qǐng)求頭信息或者傳遞的參數(shù)進(jìn)行一些計(jì)算和處理的情況,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

临桂县| 海伦市| 洛扎县| 孟连| 衡东县| 广西| 石棉县| 邹平县| 监利县| 永泰县| 林周县| 青河县| 凤冈县| 探索| 额济纳旗| 蒙自县| 绥芬河市| 临清市| 兰西县| 湖州市| 郸城县| 镇原县| 太谷县| 平陆县| 绥中县| 称多县| 丽水市| 玉龙| 达州市| 大连市| 呼图壁县| 大安市| 鄂温| 隆林| 兴业县| 县级市| 台湾省| 寿阳县| 武宁县| 永仁县| 改则县|