国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Golang 結構化日志包 log/slog 詳解(三):屬性字段和日志級別

這篇具有很好參考價值的文章主要介紹了Golang 結構化日志包 log/slog 詳解(三):屬性字段和日志級別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

上一篇文章講解了 log/slog 包中的 Handler 的使用方法,通過不同的 Handler? 可以輸出不同格式的日志。接下來看一下如何自定義日志的屬性字段和日志級別。

屬性字段(attribute)

許多日志都有一些通用的的字段,例如日志級別 level、日志記錄時間?time、日志信息 msg 等,這些字段就是屬性字段。log/slog 包自帶了有屬性字段的日志輸出功能,而不需要自己在日志內容里面添加??梢酝ㄟ^ With 函數來設置屬性字段,看個簡單的例子:

package main

import "log/slog"

func main() {
	logger := slog.With("host", "xxx.com")
	logger.Info("hello", "標題", "路多辛的博客")
}

運行看下效果:

2023/09/12 21:11:35 INFO hello host=xxx.com 標題=路多辛的博客

可以看到輸出的日志里面有了 host 字段。With 函數的參數會以鍵值對的形式出現(xiàn)在日志中,返回一個新的 Logger,使用新的 Logger 輸出日志時,每次輸出中都會出現(xiàn)新增的屬性字段。log/slog 包內置的幾個屬性字段如下:

  • time,日志記錄時間
  • level,日志級別
  • msg,日志信息
  • source,源文件信息

日志級別(Levels)

slog.Level 是整數類型,表示日志記錄的事件的重要程度或嚴重程度。級別越高,事件越嚴重。log/slog 包定義了如下幾個常用的級別:

const (
    LevelDebug Level = -4
    LevelInfo  Level = 0
    LevelWarn  Level = 4
    LevelError Level = 8
)

在應用程序中,一般只記錄某個級別或更高級別的日志。常用的做法是在非生產環(huán)境將日志設置為 Info 級別,在生產環(huán)境將日志設置為 Warn 或者 Error 級別,并且可以通過配置文件動態(tài)調整日志級別,遇到比較難以排查的問題時,臨時將日志設置為 Debug 級別,定位到問題后再調整回去。

內置的 Handler 可以通過通過 HandlerOptions.Level 參數來設置日志級別,默認為 Info 級別。要動態(tài)地改變整個程序的級別,首先需要初始化一個全局的 LevelVar,然后使用 LevelVar 來構造一個 Handler,并將其設為默認值,示例代碼如下:

package main

import (
	"log/slog"
	"os"
)

func main() {
	var programLevel = new(slog.LevelVar)
	h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel})
	slog.SetDefault(slog.New(h))
	slog.Debug("hello", "標題", "路多辛的博客")
}

運行代碼,是不會輸出任何內容的,因為日志級別設置的是 Info,所以不會輸出 Debug 級別的日志。更改日志級別為 Debug 后,再使用 Debug 函數輸出一次:

package main

import (
	"log/slog"
	"os"
)

func main() {
	var programLevel = new(slog.LevelVar)
	h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel})
	slog.SetDefault(slog.New(h))
	slog.Debug("hello", "標題", "路多辛的博客")

	programLevel.Set(slog.LevelDebug)
	slog.Debug("hello2", "標題2", "路多辛的博客")
}

運行代碼,輸入了如下內容:

{"time":"2023-09-12T21:41:59.960653+08:00","level":"DEBUG","msg":"hello2","標題2":"路多辛的博客"}

可以看出,日志級別被成功更改為了 Debug 并輸出了相關日志。文章來源地址http://www.zghlxwxcb.cn/news/detail-708175.html

到了這里,關于Golang 結構化日志包 log/slog 詳解(三):屬性字段和日志級別的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python序列化和結構化數據詳解

    序列化和結構化數據是計算機程序中非常重要的概念,它們的原理和應用在許多應用程序中都是必不可少的。Python作為一種高級編程語言,在序列化和結構化數據方面提供了很多優(yōu)秀的解決方案。在本文中,我們將詳細介紹Python中序列化和結構化數據的相關概念和應用。 1.

    2024年02月08日
    瀏覽(28)
  • ElasticSearch核心詳解、文檔、查詢響應、分頁、映射、結構化查詢

    ElasticSearch核心詳解、文檔、查詢響應、分頁、映射、結構化查詢

    在Elasticsearch中,文檔以JSON格式進行存儲,可以是復雜的結構,如: 其中,card是一個復雜對象,嵌套的Card對象 元數據(metadata) ???????一個文檔不只有數據。它還包含了元數據(metadata)——關于文檔的信息。 三個必須的元數據節(jié)點是: index ???????索引(index)類似于關

    2024年02月12日
    瀏覽(21)
  • 結構化數據、非結構化數據、半結構化數據

    結構化數據、非結構化數據、半結構化數據

    結構化的數據一般是指可以使用關系型數據庫表示和存儲,可以用二維表來邏輯表達實現(xiàn)的數據。例如:需要多少個屬性,每個屬性什么類型,每個屬性的取值范圍等等,類似下圖所示, 提前定義好了一個二維矩陣的元數據 ,包含有列名稱、列的類型、列的約束等: ? 可見

    2024年02月09日
    瀏覽(93)
  • 第五章 結構化設計

    第五章 結構化設計

    一種軟件開發(fā)活動,定義實現(xiàn)需求規(guī)約所需的軟件結構。 結構化設計分為: (1)總體設計:確定系統(tǒng)的整體模塊結構,即系統(tǒng)實現(xiàn)所需要的軟件模塊以及這些模塊之間的調用關系。 (2)詳細設計:詳細描述模塊。 體系結構設計(MSD) 接口設計 數據設計 實現(xiàn)軟件設計的目標對結

    2024年02月08日
    瀏覽(28)
  • elasticsearch結構化查詢

    elasticsearch結構化查詢

    在上一篇中我們介紹了DSL相關的知識,接下來我們將會學習elasticsearch的結構化查詢,同時也實踐一下上一篇的DSL的查詢用法 從《Elasticsearch權威指南》上摘取部分解釋如下: 從上面的定義我們可以看出來結構化查詢最重要的就是是否匹配么人并不是很關心相關性和分值計算。

    2024年02月01日
    瀏覽(30)
  • 【numpy基礎】--結構化

    目前為止,介紹的 numpy 數組基本都是關于數值的,其實, numpy 本身就是一個用于數值計算的基礎庫。 不過,除了數值計算之外, numpy 也能夠支持 結構化數組 。 numpy 的數組為了提高計算性能,要求數組的數據類型要一致。 但是現(xiàn)實情況下,我們經常遇到不是純數值的數組

    2024年02月12日
    瀏覽(29)
  • WPF 界面結構化處理

    WPF 界面結構化處理

    WPF 框架是開源的,但是不能跨平臺,可以使用MAUI,這個框架可以跨平臺,WPF源碼可以在github上下載,下載地址:https://gitbub.com/dotnet/wpf。 框架結構 如圖 XAML:eXtensible Application Markup Language的英文縮寫,相應的中文名稱為:可擴展應用程序標記語言。 命名空間 默認 映射:x/

    2024年02月13日
    瀏覽(32)
  • SQL:結構化查詢語言

    SQL:結構化查詢語言

    創(chuàng)建一張表并插入數據: 以下常用函數以MySQL為例,其它數據庫類似

    2024年02月06日
    瀏覽(30)
  • elasticsearch結構化查詢(一)

    elasticsearch結構化查詢(一)

    在上一篇中我們介紹了DSL相關的知識,接下來我們將會學習elasticsearch的結構化查詢,同時也實踐一下上一篇的DSL的查詢用法 從《Elasticsearch權威指南》上摘取部分解釋如下: 從上面的定義我們可以看出來結構化查詢最重要的就是是否匹配么人并不是很關心相關性和分值計算。

    2024年02月05日
    瀏覽(28)
  • 結構化流的介紹

    結構化流的介紹

    目錄 有界數據和無界數據 有界數據 ?無界數據 ?結構化流 基本介紹 入門案例 結構化流的編程模型 數據結構 數據源(Source) File Source Kafka Source(Spark 和 Kafka 整合) 整合Kafka準備工作 從kafka中讀取數據 流式處理 批處理 ?數據寫入Kafka中 流式處理 批處理 有界數據 數據有固定的開

    2024年01月15日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包