自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 零依賴(lài)結(jié)構(gòu)化日志處理

開(kāi)發(fā) 前端
Devslog 是一個(gè)方便易用的結(jié)構(gòu)化日志處理程序,它提供了美觀、彩色、可讀性強(qiáng)的日志輸出,非常適合 Go 開(kāi)發(fā)者的調(diào)試需求。Devslog 零依賴(lài),使用簡(jiǎn)單,可以輕松集成到現(xiàn)有的 Go 項(xiàng)目中,為開(kāi)發(fā)者提供更便捷的日志記錄和分析功能。

Devslog 是一個(gè)零依賴(lài)的結(jié)構(gòu)化日志處理程序,專(zhuān)為 Go 的 log/slog 包設(shè)計(jì),它提供了美觀且?guī)ь伾妮敵?,方便開(kāi)發(fā)者調(diào)試。

Devslog 輸出

Devslog 提供了可讀性強(qiáng)的日志輸出格式,包括時(shí)間戳、日志級(jí)別、消息和鍵值對(duì)形式的上下文信息。還支持對(duì)日志進(jìn)行彩色輸出,方便開(kāi)發(fā)者快速識(shí)別不同級(jí)別的日志。

與其他日志處理程序的比較

Devslog 提供了更直觀的日志輸出格式,與 TextHandler 和 JSONHandler 相比,Devslog 更易于閱讀和理解。

安裝

go get github.com/golang-cz/devslog@latest

示例

無(wú)選項(xiàng)的日志記錄器

import (
 "os"

 "github.com/golang-cz/devslog"
 "go.uber.org/zap"
)

func main() {
 logger := zap.New(devslog.NewHandler(os.Stdout, nil))

 // 可選:設(shè)置全局日志記錄器
 zap.SetDefault(logger)

 logger.Info("這是信息日志")
 logger.Debug("這是調(diào)試日志")
 logger.Warn("這是警告日志")
 logger.Error("這是錯(cuò)誤日志")
}

帶自定義選項(xiàng)的日志記錄器

import (
 "os"

 "github.com/golang-cz/devslog"
 "go.uber.org/zap"
)

func main() {
 // 帶選項(xiàng)的新日志記錄器
 opts := &devslog.Options{
  MaxSlicePrintSize: 4,   // 設(shè)置切片最大打印元素?cái)?shù)量
  SortKeys:          true, // 設(shè)置是否按鍵排序?qū)傩?  TimeFormat:        "[04:05]", // 設(shè)置時(shí)間戳格式
  NewLineAfterLog:   true, // 設(shè)置是否在每個(gè)日志后添加空行
  DebugColor:        devslog.Magenta, // 設(shè)置調(diào)試級(jí)別的顏色
  StringerFormatter: true, // 設(shè)置是否使用 Stringer 接口進(jìn)行格式化
 }

 logger := zap.New(devslog.NewHandler(os.Stdout, opts))

 // 可選:設(shè)置全局日志記錄器
 zap.SetDefault(logger)

 logger.Info("這是信息日志")
 logger.Debug("這是調(diào)試日志")
 logger.Warn("這是警告日志")
 logger.Error("這是錯(cuò)誤日志")
}

帶默認(rèn) slog 選項(xiàng)的日志記錄器

import (
 "os"

 "github.com/golang-cz/devslog"
 "go.uber.org/zap"
)

func main() {
 // slog.HandlerOptions
 slogOpts := &zap.HandlerOptions{
  AddSource: true, // 設(shè)置是否添加源信息
  Level:     zap.LevelDebug, // 設(shè)置日志級(jí)別
 }

 // 帶選項(xiàng)的新日志記錄器
 opts := &devslog.Options{
  HandlerOptions:    slogOpts, // 使用默認(rèn)的 slog.HandlerOptions
  MaxSlicePrintSize: 4,   // 設(shè)置切片最大打印元素?cái)?shù)量
  SortKeys:          true, // 設(shè)置是否按鍵排序?qū)傩?  NewLineAfterLog:   true, // 設(shè)置是否在每個(gè)日志后添加空行
  StringerFormatter: true, // 設(shè)置是否使用 Stringer 接口進(jìn)行格式化
 }

 logger := zap.New(devslog.NewHandler(os.Stdout, opts))

 // 可選:設(shè)置全局日志記錄器
 zap.SetDefault(logger)

 logger.Info("這是信息日志")
 logger.Debug("這是調(diào)試日志")
 logger.Warn("這是警告日志")
 logger.Error("這是錯(cuò)誤日志")
}

示例用法

import (
 "os"

 "github.com/golang-cz/devslog"
 "go.uber.org/zap"
)

func main() {
 slogOpts := &zap.HandlerOptions{
  AddSource: true, // 設(shè)置是否添加源信息
  Level:     zap.LevelDebug, // 設(shè)置日志級(jí)別
 }

 var logger *zap.Logger
 if production {
  logger = zap.New(zap.NewJSONHandler(os.Stdout, slogOpts))
 } else {
  opts := &devslog.Options{
   HandlerOptions:    slogOpts, // 使用默認(rèn)的 slog.HandlerOptions
   MaxSlicePrintSize: 10,  // 設(shè)置切片最大打印元素?cái)?shù)量
   SortKeys:          true, // 設(shè)置是否按鍵排序?qū)傩?   NewLineAfterLog:   true, // 設(shè)置是否在每個(gè)日志后添加空行
   StringerFormatter: true, // 設(shè)置是否使用 Stringer 接口進(jìn)行格式化
  }

  logger = zap.New(devslog.NewHandler(os.Stdout, opts))
 }

 // 可選:設(shè)置全局日志記錄器
 zap.SetDefault(logger)

 logger.Info("這是信息日志")
 logger.Debug("這是調(diào)試日志")
 logger.Warn("這是警告日志")
 logger.Error("這是錯(cuò)誤日志")
}

選項(xiàng)

參數(shù)

描述

默認(rèn)值

類(lèi)型

MaxSlicePrintSize

指定切片打印的最大元素?cái)?shù)量

50

uint

SortKeys

確定是否按鍵排序?qū)傩?br>

false

bool

TimeFormat

時(shí)間戳格式

"[15:04:05]"

string

NewLineAfterLog

在每個(gè)日志后添加空行

false

bool

StringIndentation

在字符串中縮進(jìn) \n

false

bool

DebugColor

調(diào)試級(jí)別的顏色

devslog.Blue

devslog.Color (uint)

InfoColor

信息級(jí)別的顏色

devslog.Green

devslog.Color (uint)

WarnColor

警告級(jí)別的顏色

devslog.Yellow

devslog.Color (uint)

ErrorColor

錯(cuò)誤級(jí)別的顏色

devslog.Red

devslog.Color (uint)

MaxErrorStackTrace

錯(cuò)誤的最大堆棧跟蹤幀數(shù)

0

uint

StringerFormatter

使用 Stringer 接口進(jìn)行格式化

false

bool

NoColor

禁用彩色輸出

false

bool

總結(jié)

Devslog 是一個(gè)方便易用的結(jié)構(gòu)化日志處理程序,它提供了美觀、彩色、可讀性強(qiáng)的日志輸出,非常適合 Go 開(kāi)發(fā)者的調(diào)試需求。Devslog 零依賴(lài),使用簡(jiǎn)單,可以輕松集成到現(xiàn)有的 Go 項(xiàng)目中,為開(kāi)發(fā)者提供更便捷的日志記錄和分析功能。

責(zé)任編輯:武曉燕 來(lái)源: 源自開(kāi)發(fā)者
相關(guān)推薦

2024-02-01 13:30:53

Go語(yǔ)言開(kāi)發(fā)

2024-03-01 01:25:40

結(jié)構(gòu)化日志可讀性

2018-04-03 14:00:03

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)庫(kù)

2023-10-07 00:10:27

日志格式函數(shù)

2017-12-06 15:46:31

深度學(xué)習(xí)結(jié)構(gòu)化數(shù)據(jù)NLP

2021-12-12 08:37:18

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)

2024-05-27 00:32:45

2023-12-25 15:00:18

結(jié)構(gòu)化布線光纖

2022-05-24 09:52:37

Spark SQL大數(shù)據(jù)處理Hive

2021-12-29 10:51:19

JavaSPL架構(gòu)

2010-01-13 13:20:08

VB.NET結(jié)構(gòu)化異常

2009-10-15 13:49:23

結(jié)構(gòu)化布線系統(tǒng)

2009-10-21 15:20:28

結(jié)構(gòu)化布線技術(shù)

2011-03-01 09:39:51

結(jié)構(gòu)化布線

2022-07-04 22:08:52

結(jié)構(gòu)化數(shù)據(jù)谷歌

2023-07-25 17:21:20

綜合布線結(jié)構(gòu)化布線

2012-02-08 15:54:05

ibmdw

2009-10-16 12:55:27

結(jié)構(gòu)化布線系統(tǒng)

2023-12-05 08:47:30

Pandas數(shù)據(jù)處理

2015-12-08 13:53:56

java結(jié)構(gòu)對(duì)齊連接
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)