2016-08-08 49 views
0

Ich verwende eine Drittanbieter-Bibliothek in einem meiner Tools, die die Standardprotokollierung von Golang verwendet. Die Bibliothek ist https://github.com/jason0x43/go-togglProtokollierung für 3rd-Party-Bibliothek deaktivieren

Jetzt schrieb ich ein Befehlszeilen-Dienstprogramm, dass Instrumente toggeln und ich möchte nicht die Protokollierung dort geschrieben haben. Ich habe Go: Disable a log.Logger? gefunden, aber dies betrifft die Deaktivierung innerhalb des eigenen Codes. Wie kann ich die Protokollierung in einer Bibliothek deaktivieren?

Antwort

3

Dieses Paket definiert seinen eigenen Logger, exportiert es nicht und bietet keine Hooks, um die Ausgabe zu ändern. Sie können das Protokollziel nicht ändern, ohne den Paketcode zu ändern.

Eine weitere Option in diesem Fall ist, dass, da der Logger schreibt os.Stderros.Stderr als Ihre eigene io.Writer definieren, um die Protokollausgabe dort abzufangen und zu filtern. Das kann so einfach sein, wie alle stderr-Ausgaben gepuffert und nur im Falle eines Fehlers ausgedruckt werden.