>백엔드 개발 >Golang >golang 로그를 디자인하는 방법

golang 로그를 디자인하는 방법

(*-*)浩
(*-*)浩원래의
2019-12-03 11:10:053669검색

golang 로그를 디자인하는 방법

Golang의 기본 로그 모듈은 요구 사항을 충족할 수 없으며 오픈 소스 타사 패키지로는 충분하지 않습니다. 사용자가 많은 로그러스에는 회전 기능이 없는 것으로 알려져 있습니다. 운영 및 유지 관리에 있어서는 물론 로그 처리가 간단하고 실용적이며 충분하기를 바랍니다. logrotate를 구현하는 데 추가 통과 시스템이 필요하지 않습니다.

1. 수요

수요 측면에는 몇 가지 주요 측면이 있습니다. (배우는 것이 좋습니다) :go)

한편으로는 순환 기능이 있어야 하고 보관되는 로그 복사본 수를 제한하는 것이 반드시 필요합니다. 파일 크기별, 요일별, 시간별 삭감 여부는 협의 가능합니다.

반면, 로그 수준의 경우 동적으로 조정할 수 있으면 온라인 디버깅 중에 로그를 일반 로그로 닫는 것이 편리합니다. 더 많은 디버그 로그를 인쇄하기 위해 로그 수준을 동적으로 줄일 수 있습니다.

2. 연구

현재 몇 가지 주요 항목이 있습니다. #🎜🎜 #

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星。

전 동료가 log15를 기반으로 보조 패키지를 작성했지만 log15.v2/ext 패키지는 이해하기 쉽지 않습니다.

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

요약하면 ngaut는 패키징 프로세스를 배우고 이해하는 데 더 적합합니다. Logrus를 기반으로 하면 더 안정적인 선택입니다. 하단 레이어에는 다른 패키지에서 구현된 절단 기능이 필요합니다.

3. 기능성 디자인

주요 포인트:

로그 기능.

로그 커팅을 완료해야 하고, 이력 로그를 압축해야 합니다

Go 코드에서 발생한 문제를 참조하여 지원 수준 핫 업데이트 제공

위 내용은 golang 로그를 디자인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.