標準log
パッケージには、Pythonでlogging
標準ライブラリとは異なり、レベルをサポートしていません。Golangログ戦略
多くのパッケージには、このようなglog
やlogrus
などのサードパーティのログパッケージに頼ります。
またはサードパーティのロギングパッケージを使用しない場合があり、サードパーティ製のパッケージをインポートするときに行くための最善のロギング戦略は何ですか。
標準log
パッケージには、Pythonでlogging
標準ライブラリとは異なり、レベルをサポートしていません。Golangログ戦略
多くのパッケージには、このようなglog
やlogrus
などのサードパーティのログパッケージに頼ります。
またはサードパーティのロギングパッケージを使用しない場合があり、サードパーティ製のパッケージをインポートするときに行くための最善のロギング戦略は何ですか。
だから、私はあなたが求めていると思いますが、私はhttps://golang.org/pkg/log/昔ながらの用途と私のメインのパッケージを使用しているパッケージはlog.Info
、log.Warn
、log.Error
、およびlog.Debug
のような特別な何かを、使用したらどう?
パッケージはあなたにlog.Logger
オブジェクトを公開する場合は、それらのログメッセージがどのように見えるか、それらを完全に黙らが、あなたは彼らがあなたの特別なサードで素晴らしいプレーすることはできません何を変更するSetFlags
、SetOutput
、SetPrefix
を使用することができますパーティロギングパッケージ。例えば
第三部のパッケージは次のように見える場合:
package sayhello
import (
"log"
"os"
)
type SayHello {
Logger *log.Logger
}
func NewSayHello() (SayHello) {
logger, _ := os.OpenFile("/tmp/tmp.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
var sh SayHello
sh.Logger = log.New(logger, "SAY HELLO LOGGER: ", log.Ldate|log.Ltime|log.Lshortfile)
return sh
}
func (sh SayHello) Run() {
sh.Logger.Println("Hello. I ran!")
}
それから私はこのようにそれを黙らせることができます。
package main
import (
"sayhello"
"io/ioutil"
)
func main() {
sh := sayhello.NewSayHello()
sh.Run()
// output is: 2016/08/10 16:47:46 SAY HELLO LOGGER: Hello. I ran!
sh.Logger.SetOutput(ioutil.Discard)
sh.Run()
// output is nothing
}
しかし、あなたは別のパッケージにログステートメントを変換することができる方法は本当にありませんがlog.Println
のように、log.Info
、またはlog.Debug
のようなものがあります。これはあなたが探しているものです。
あなたは一体何を求めていますか? – Plato