slog - 가볍고 구성 가능하며 확장 가능한 Go 로깅 라이브러리

slog는 가볍고 구성 가능하며 확장 가능한 Go 로깅 라이브러리입니다.



특징


  • 구성 없이 간단하고 직접 사용 가능
  • 일반 로그 수준 처리를 지원합니다.
  • 예: trace debug info notice warn error fatal panic

  • 필요에 따라 Handler Formatter의 모든 확장 지원
  • 여러 개의 로그 처리Handler를 동시에 추가하여 다른 위치에 로그 출력 지원
  • 사용자 정의 로그 메시지 지원Formatter
  • 내장형json text 두 개의 로그 레코드 형식화Formatter

  • 사용자 정의 빌드 로그 메시지 지원Handler
  • 내장형handler.Confighandler.Builder은 원하는 로그 핸들러
  • 를 쉽고 빠르게 구축할 수 있습니다.

  • 공통 로그 쓰기 핸들러 프로그램이 내장되어 있습니다.
  • console 콘솔에 로그 출력, 색상 출력 지원
  • writer 지정된 로그로 출력 로그io.Writer
  • file 로그를 지정된 파일로 출력, 선택적으로 버퍼 쓰기
  • 에 대해 활성화buffer
  • simple 지정된 파일에 로그 출력, 버퍼링 없이 파일에 직접 쓰기
  • rotate_file 지정된 파일에 로그를 출력하고 시간 및 크기별로 파일 분할을 지원하며 buffer 버퍼링된 쓰기가 기본적으로 활성화됩니다
  • .
  • 더 많은 내장 구현을 보려면 ./handler 폴더를 참조하십시오
  • .


    로그를 파일로 출력


  • 로그 쓰기
  • 에 대한 지원 활성화buffer
  • timesize로 로그 파일 분할 지원
  • gzip를 통해 로그 파일을 압축하는 구성 지원
  • BackupNum로 이전 로그 파일 정리 지원BackupTime

  • Git 저장소


  • Github: https://github.com/gookit/slog

  • 설치




    go get github.com/gookit/slog
    


    빠른 시작




    package main
    
    import (
        "github.com/gookit/slog"
    )
    
    func main() {
        slog.Trace("this is a log message")
        slog.Debug("this is a log message")
        slog.Info("this is a log message")
        slog.Notice("this is a log message")
        slog.Warn("this is a log message")
        slog.Error("this is a log message")
        slog.Fatal("this is a log message")
    }
    


    출력 미리보기:



    파일에 기록


    slog를 사용하여 로그를 파일로 출력하는 것은 매우 편리하며 여러 파일, 시간 분할 등을 지원합니다.

    package main
    
    import (
        "github.com/gookit/slog"
        "github.com/gookit/slog/handler"
        "github.com/gookit/slog/rotatefile"
    )
    
    func main() {
        defer slog.MustFlush()
    
        // DangerLevels contains: slog.PanicLevel, slog.ErrorLevel, slog.WarnLevel
        h1 := handler.MustRotateFile("/tmp/logs/app_error.log", rotatefile.EveryHour, 
            handler.WithLogLevels(slog.DangerLevels),
        )
    
        // NormalLevels contains: slog.InfoLevel, slog.NoticeLevel, slog.DebugLevel, slog.TraceLevel
        h2 := handler.MustRotateFile("/tmp/logs/app_info.log", rotatefile.EveryHour,
            handler.WithLogLevels(slog.NormalLevels),
        )
    
        slog.PushHandler(h1)
        slog.PushHandler(h2)
    
        // add logs
        slog.Info("info message text")
        slog.Error("error message text")
    }
    


    로그 디렉토리 참조:

    $ ls /tmp/logs
    app_error.log
    app_info.log
    


    더 많은 사용량



    More usage please see README

    좋은 웹페이지 즐겨찾기