日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame高級(jí)特性-服務(wù)日志管理

?GOFrame?框架提供了完善的?Server?日志管理功能,包括?access log?以及?error log?,推薦使用配置文件的方式統(tǒng)一配置管理。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括襄州網(wǎng)站建設(shè)、襄州網(wǎng)站制作、襄州網(wǎng)頁制作以及襄州網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,襄州網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到襄州省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

日志配置

配置對(duì)象

請(qǐng)查看?API?文檔:

https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#ServerConfig

配置屬性

日志相關(guān)配置屬性如下:

Logger            *glog.Logger      // Logger for server.
LogPath           string            // Directory for storing logging files.
LogStdout         bool              // Printing logging content to stdout.
ErrorStack        bool              // Logging stack information when error.
ErrorLogEnabled   bool              // Enable error logging files.
ErrorLogPattern   string            // Error log file pattern like: error-{Ymd}.log
AccessLogEnabled  bool              // Enable access logging files.
AccessLogPattern  string            // Error log file pattern like: access-{Ymd}.log

簡(jiǎn)要說明:

  1. 默認(rèn)情況下,日志不會(huì)輸出到文件中,而是直接打印到終端。默認(rèn)情況下的?access?日志終端輸出是關(guān)閉的,僅有?error?日志默認(rèn)開啟。
  2. 所有的選項(xiàng)均可通過?Server.Set*?方法設(shè)置,大部分選項(xiàng)可以通過?Server.Get*?方法獲取。
  3. ?Logger?是一個(gè)自定義的日志管理對(duì)象,開發(fā)者也可以傳遞一個(gè)完整的日志管理對(duì)象,忽略其他日志選項(xiàng)配置。
  4. ?LogPath?屬性用于設(shè)置日志目錄,只有在設(shè)置了日志目錄的情況下才會(huì)輸出日志到日志文件中。
  5. ?ErrorLogPattern?及?AccessLogPattern?用于配置日志文件名稱格式,默認(rèn)為?error-{Ymd}.log?及?access-{Ymd}.log?,例如:?error-20191212.log?, ?access-20191212.log?。
  6. 其他配置選項(xiàng)說明請(qǐng)參考注釋和API文檔。

配置文件

官方推薦使用配置文件的方式來管理服務(wù)配置以及日志日志配置。 一個(gè)參考的日志配置內(nèi)容示例(以?yaml?格式為例):

server:
  LogPath:          "/var/log/gf-demos/server"
  LogStdout:        false
  ErrorStack:       true
  ErrorLogEnabled:  true
  ErrorLogPattern:  "error.{Ymd}.log"
  AccessLogEnabled: true
  AccessLogPattern: "access.{Ymd}.log"

當(dāng)?Server?啟動(dòng)時(shí)將會(huì)自動(dòng)去讀取默認(rèn)配置文件?config.yaml?中的?server?節(jié)點(diǎn)配置。

配置方法

日志的配置也可以通過?Server?對(duì)象的?Set*?方法來進(jìn)行配置,

日志格式

配置文件的方式比較簡(jiǎn)單,這里不再示例說明。以下示例通過配置方法的方式進(jìn)行對(duì)?Server?進(jìn)行配置。

請(qǐng)求日志

請(qǐng)求日志內(nèi)容如下:

2018-04-20 18:11:57.344 200 "GET http 127.0.0.1:8199 /log/access HTTP/1.1" 0.120, 127.0.0.1, "", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"

日志格式:

請(qǐng)求時(shí)間(精確到毫秒) HTTP狀態(tài)碼 "請(qǐng)求方式 請(qǐng)求前綴 請(qǐng)求地址 請(qǐng)求協(xié)議" 執(zhí)行時(shí)間(毫秒) 客戶端IP "來源URL", "UserAgent"

其中,請(qǐng)求前綴為?http?或者?https?,請(qǐng)求協(xié)議往往為?HTTP/1.0?或者?HTTP/1.1?。

注意,日志中記錄的執(zhí)行時(shí)間單位為毫秒,絕大多數(shù)情況下看到的時(shí)間幾乎都是?0.xxx?毫秒時(shí)間,也就是說執(zhí)行時(shí)間都是微秒級(jí)不到?1?毫秒。

錯(cuò)誤日志

錯(cuò)誤日志內(nèi)容如下:

2019-12-20 20:10:56.484 [ERRO] 500, "GET http 127.0.0.1:8199 /log/error HTTP/1.1" 0.210, 127.0.0.1, "", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
Stack:
1. OMG
   1).  main.main.func1
        /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/net/ghttp/server/log/log_error.go:10

錯(cuò)誤信息會(huì)打印出對(duì)應(yīng)錯(cuò)誤產(chǎn)生的堆棧信息(堆棧信息中不包含框架內(nèi)部調(diào)用信息),以便于錯(cuò)誤定位以及開發(fā)者分析問題原因。

?Server?產(chǎn)生的任何?panic?錯(cuò)誤都將會(huì)被自動(dòng)捕獲到錯(cuò)誤日志中,因此對(duì)于業(yè)務(wù)端程序來講,無論是在控制器中、業(yè)務(wù)封裝層、數(shù)據(jù)模型中,如果產(chǎn)生了錯(cuò)誤想要直接退出業(yè)務(wù)請(qǐng)求處理,直接?panic?即可。

自定義日志處理

開發(fā)者可以自定義處理?Server?的請(qǐng)求日志,方法有兩種:

  • 可以通過日志配置項(xiàng)傳遞自定義的?*glog.Logger?對(duì)象。
  • 可以通過中間件來統(tǒng)一捕獲處理。

Server日志與業(yè)務(wù)日志

我們需要注意的是,這里提到的日志都是?Server?的日志,類似于?nginx?, ?apache?, ?tomcat?等等一系列?Web Server?服務(wù)的日志,只允許?Server?輸出內(nèi)容,開發(fā)者無法往?Server?的日志文件中寫入日志內(nèi)容,并且日志類型和格式是完全固定的。

?GoFrame?框架也提供了日志模塊,由?glog?日志組件實(shí)現(xiàn),開發(fā)者通過?glog?組件打印的日志屬于業(yè)務(wù)日志,程序業(yè)務(wù)代碼可以決定輸出什么內(nèi)容,輸出到哪里,輸出格式是什么樣等。并且常用?g.Log()?方法來輸出業(yè)務(wù)日志,該方法支持自動(dòng)讀取配置文件中的?logger?配置項(xiàng)。


本文標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame高級(jí)特性-服務(wù)日志管理
文章位置:http://www.5511xx.com/article/dhdjshj.html