第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在“日志”時發(fā)送 HTTP 請求。致命()“被處決了嗎?

如何在“日志”時發(fā)送 HTTP 請求。致命()“被處決了嗎?

Go
紅糖糍粑 2022-10-04 19:36:37
總之我想在“日志”時向我的HTTP服務器發(fā)送系統(tǒng)信息。致命 ()“ 被調(diào)用,而無需為每個日志語句添加任何額外的代碼。更改/覆蓋信息,致命等的默認行為將非常棒。在Python中,有一種方法可以將HTTP處理程序添加到默認日志記錄庫,這反過來又會在日志發(fā)出時發(fā)送POST HTTP請求。
查看完整描述

2 回答

?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

您可以為內(nèi)置創(chuàng)建包裝模塊log


您的項目/日志/日志


package log

import goLog "log"

func Fatal(v ...interface{}) {

   goLog.Fatal(v...)

   // send request ...

   // reqQueue <- some args

}

將模塊替換為項目中的包裝器log


// import "log"

import "yourproject/log"


func Foo() {

    log.Fatal(err)

}


查看完整回答
反對 回復 2022-10-04
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

嘗試創(chuàng)建一個包裝標準 Logger 類型的類型,但具有所需的增強功能。然后,通過創(chuàng)建一個名為“l(fā)og”的實例來包裝默認記錄器,您可以繼續(xù)以相同的方式在代碼中使用日志記錄,并且所需的更改最少(因為它將與日志包具有相同的名稱,并保留*所有方法)。


package main


import _log "log"


type WrappedLogger struct {

    // This field has no name, so we retain all the Logger methods

    *_log.Logger

}


// here we override the behaviour of log.Fatal

func (l *WrappedLogger) Fatal(v ...interface{}) {

    l.Println("doing the HTTP request")

    /// do HTTP request


    // now call the original Fatal method from the underlying logger

    l.Logger.Fatal(v...)

}


// wrapping the default logger, but adding our new method.

var log = WrappedLogger{_log.Default()}


func main() {

    // notice we can still use Println

    log.Println("hello")

    // but now Fatal does the special behaviour

    log.Fatal("fatal log")

}

*這里唯一的問題是,我們用日志實例替換了典型的日志包。在許多方面,它的行為是相同的,因為為了方便起見,日志包中的大多數(shù)函數(shù)都設置為轉(zhuǎn)發(fā)到默認的 Logger 實例。


但是,這意味著我們的新成員將無法訪問日志包中的“true”函數(shù),例如 log。新建。為此,您需要將別名引用到原始包。log


// want to create a new logger?

_log.New(out, prefix, flag)


查看完整回答
反對 回復 2022-10-04
  • 2 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號