5 回答

TA貢獻1898條經驗 獲得超8個贊
您嘗試做的事情是不可能的:
輸出到stdout或stderr 的日志沒有關聯的日志級別。
內部系統消息具有DEBUG日志級別。
您可能需要的是使用Logging API,特別是Log Levels部分。
如果這對您不起作用,您可以嘗試使用node.js
代替,go
因為它當前分別使用和向INFO
和級別發出日志。ERROR
console.log()
console.error()

TA貢獻1875條經驗 獲得超3個贊
我創建了一個包來做到這一點:?github.com/ncruces/go-gcp/glog
它適用于 App Engine、Kubernetes Engine、Cloud Run 和 Cloud Functions。支持設置日志記錄級別、請求/跟蹤元數據和結構化日志記錄。
用法:
func HelloWorld(w http.ResponseWriter, r *http.Request) {
? ? glog.Infoln("Hello logs")
? ? glog.Errorln("Hello logs")
? ? // or, to set request metadata:
? ? logger := glog.ForRequest(r)
? ? logger.Infoln("Hello logs")
}

TA貢獻1796條經驗 獲得超7個贊
您可以使用允許您設置日志級別的外部庫。使用 logrus 設置最小日志級別(您可以通過在環境變量中提供日志級別來改進此代碼),并使用 joonix 來設置 fluidd 格式化程序。(第 25 行)
一個注意點。第11行,我將logrus包重命名為log?log "github.com/sirupsen/logrus"
?因此,不使用log標準庫,而是使用logrus庫。有時很無聊......您可以簡單地用 logrus 替換 log 以避免所有混亂。
Joonix 是一個 FluentD 格式化程序,用于將日志轉換為 Stackdriver 可攝取的格式。

TA貢獻1809條經驗 獲得超8個贊
我也嘗試為此創建一個包。如果您使用 logrus ( https://github.com/sirupsen/logrus ),那么這可能會有所幫助:
https://github.com/tekkamanendless/gcfhook
我在生產中使用它,并且運行得很好。

TA貢獻1836條經驗 獲得超5個贊
我推薦https://github.com/apsystole/log。它也與 log 和 logrus 兼容,但它是一個小型的零依賴模塊,與兩個現有答案中使用的庫不同,后者將 400 多個模塊作為其依賴項(喘息......我只是在看go mod graph
)。
- 5 回答
- 0 關注
- 198 瀏覽
添加回答
舉報