Dubbo-go 3.0 自定義日志

2022-04-14 17:18 更新

Dubbo-go 3.0 自定義日志

Dubbo-go 3.0 自定義日志組件

參考samples dubbo-go-samples/logger

1. 日志配置

Dubbo-go 3.0 默認(rèn)采用 zap 日志庫(kù),在配置文件中不添加 logger 配置,日志將會(huì)打印到控制默認(rèn)級(jí)別為debug。您也可在配置文件中配置日志級(jí)別、, 可參照如下方式來(lái)配置zap-config和lumberjack-config,從而定制化日志輸出。

dubbo:
  logger:
    zap-config:
      level: debug # 日志級(jí)別
      development: false
      disableCaller: false
      disableStacktrace: false
      encoding: "console"
      # zap encoder 配置
      encoderConfig:
        messageKey: "message"
        levelKey: "level"
        timeKey: "time"
        nameKey: "logger"
        callerKey: "caller"
        stacktraceKey: "stacktrace"
        lineEnding: ""
        levelEncoder: "capitalColor"
        timeEncoder: "iso8601"
        durationEncoder: "seconds"
        callerEncoder: "short"
        nameEncoder: ""
      outputPaths:
        - "stderr"
      errorOutputPaths:
        - "stderr"
    lumberjack-config:
       # 寫(xiě)日志的文件名稱(chēng)
      filename: "logs.log"
      # 每個(gè)日志文件長(zhǎng)度的最大大小,單位是 MiB。默認(rèn) 100MiB
      maxSize: 1
      # 日志保留的最大天數(shù)(只保留最近多少天的日志)
      maxAge: 3
      # 只保留最近多少個(gè)日志文件,用于控制程序總?cè)罩镜拇笮?      maxBackups: 5
      # 是否使用本地時(shí)間,默認(rèn)使用 UTC 時(shí)間
      localTime: true
      # 是否壓縮日志文件,壓縮方法 gzip
      compress: false

2. 日志API 和 自定義日志

日志Interface

type Logger interface {
	Info(args ...interface{})
	Warn(args ...interface{})
	Error(args ...interface{})
	Debug(args ...interface{})
	Fatal(args ...interface{})

	Infof(fmt string, args ...interface{})
	Warnf(fmt string, args ...interface{})
	Errorf(fmt string, args ...interface{})
	Debugf(fmt string, args ...interface{})
	Fatalf(fmt string, args ...interface{})
}

日志API

import "dubbo.apache.org/dubbo-go/v3/common/logger"


logger.SetLoggerLevel(warn) // 在 main 函數(shù)中設(shè)置日志級(jí)別
logger.SetLogger(myLogger)  // 在 main 函數(shù)中設(shè)置自定義logger
  • 日志API不可以在Init 階段使用,否則可能會(huì)發(fā)生意料之外的問(wèn)題。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)