簡體   English   中英

如何為 uber-go.zap 創建一個基本的數據庫記錄器?

[英]How do you create a basic database logger for uber-go.zap?

我一直在尋找如何為uber-go.zip實現數據庫記錄器的示例,它將messagefields插入數據庫表以供查詢。 (所以沒有編碼)到目前為止找不到一些例子,所以我從這里的例子開始:

如何訪問 zap Hooks 中的字段?

但是代碼甚至沒有按照它建議的那樣去做,這是我的例子:

https://go.dev/play/p/9AugEsYwA-E

package main

import (
    "errors"
    "fmt"

    "go.uber.org/zap"
    "go.uber.org/zap/zapcore"
)

func main() {
    fmt.Println("Hello, 世界")
    l, _ := zap.NewProduction()
    logger := zap.New(&CqlLogCore{Core: l.Core()})

    logger.Info("some logging info",
        zap.Int("count", 17),
        zap.Error(errors.New("boom")))

}

type CqlLogCore struct {
    zapcore.Core
}

func (c *CqlLogCore) Write(entry zapcore.Entry, fields []zapcore.Field) error {
    fmt.Println("hi", entry, fields)
    return c.Core.Write(entry, fields)
}

帶有“hi”的測試日志消息不會轉儲到標准輸出。 有人可以指出我出錯的地方,或者一個示例數據庫記錄器。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM