Heim > Backend-Entwicklung > Golang > So entwerfen Sie ein Golang-Protokoll

So entwerfen Sie ein Golang-Protokoll

(*-*)浩
Freigeben: 2019-12-03 11:10:05
Original
3672 Leute haben es durchsucht

So entwerfen Sie ein Golang-Protokoll

Das native Protokollmodul von Golang kann die Anforderungen nicht erfüllen, und Open-Source-Pakete von Drittanbietern reichen nicht vollständig aus. Es ist bekannt, dass Logrus, das viele Benutzer hat, keine Rotationsfunktion hat. Für Betrieb und Wartung hoffen wir natürlich, dass die Protokollverarbeitung einfach, praktisch und ausreichend ist. Für die Implementierung von Logrotate ist kein zusätzliches Pass-Through-System erforderlich.

1. Nachfrage

Auf der Nachfrageseite gibt es mehrere Hauptaspekte: (Empfohlenes Lernen: go )

Einerseits ist es auf jeden Fall notwendig, eine Rotationsfunktion zu haben und die Anzahl der aufbewahrten Protokollkopien zu begrenzen. Ob nach Dateigröße, Tag oder Stunde geschnitten werden soll, können wir besprechen.

Wenn andererseits die Protokollebene dynamisch angepasst werden kann, ist es für das Protokoll praktisch, das reguläre Protokoll zu schließen. Während des Online-Debuggens kann die Protokollebene dynamisch gesenkt werden und weitere Debug-Protokolle können gedruckt werden.

2. Forschung

Es gibt derzeit mehrere Hauptthemen:

github.com/sirupsen/logrus。用户广泛,但明确表示不支持日志切割功能,建议通过hook走日志系统。
github.com/natefinch/lumberjack。支持以文件大小的方式切割日志。用户偏少。
gopkg.in/inconshreveable/log15.v2。比较老牌。
github.com/lestrrat-go/file-rotatelogs。基于小时数进行切割的小众包。
github.com/xiaomi-tc/log15。小米基于log15写的二次封装增加了切割功能。但只有2星。
Nach dem Login kopieren

Ein ehemaliger Kollege hat basierend darauf geschrieben auf log15 Sekundäre Kapselung, aber das Paket log15.v2/ext ist nicht leicht zu verstehen.

github.com/ngaut/log。完全不依赖第三方包。可基于日期及小时进行切割。
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass ngaut besser zum Erlernen und Verstehen des Verpackungsprozesses geeignet ist. Basierend auf Logrus ist es eine zuverlässigere Wahl. Die unterste Ebene erfordert die von anderen Paketen implementierte Schneidfunktion.

3. Funktionsdesign

Hauptpunkte:

Verwenden Sie Logrus, um die Protokollierungsfunktion abzuschließen.

Das Schneiden von Protokollen muss abgeschlossen sein und historische Protokolle müssen komprimiert werden.

Hot-Updates auf Supportebene werden bereitgestellt, indem auf Probleme im Go-Code verwiesen wird.

Das obige ist der detaillierte Inhalt vonSo entwerfen Sie ein Golang-Protokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage