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 중국어 웹사이트의 기타 관련 기사를 참조하세요!