log

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitFile

func InitFile(appName string, retentionDays float64) io.Closer

InitFile 로그 파일 출력을 초기화합니다. 이 함수는 환경설정 로드 전에 호출하여 모든 로그가 파일에 기록되도록 합니다. Debug 모드 설정은 SetDebugMode()를 통해 별도로 수행합니다.

func InitFileWithOptions

func InitFileWithOptions(appName string, retentionDays float64, opts InitFileOptions) io.Closer

InitFileWithOptions는 옵션을 사용하여 로그 파일 출력을 초기화합니다. 레벨별 로그 파일 분리 기능을 사용하려면 이 함수를 사용하세요.

func SetCallerPathPrefix

func SetCallerPathPrefix(prefix string)

SetCallerPathPrefix 호출자 정보에서 축약할 경로 prefix를 설정합니다. main() 함수 초기에 호출하여 호출자 경로 표시를 커스터마이징할 수 있습니다. 예제: SetCallerPathPrefix("github.com/darkkaiser")

func SetDebugMode

func SetDebugMode(debug bool)

SetDebugMode Debug 모드에 따라 로그 레벨을 설정합니다. - Debug 모드: Trace 레벨 (모든 로그 출력) - 운영 모드: Info 레벨 (Info, Warn, Error, Fatal만 출력)

func WithComponent

func WithComponent(component string) *log.Entry

WithComponent component 필드를 포함한 로그 Entry를 반환합니다. 모든 로그에 component 필드를 일관되게 추가하기 위해 사용합니다.

func WithComponentAndFields

func WithComponentAndFields(component string, fields log.Fields) *log.Entry

WithComponentAndFields component 필드와 추가 필드를 포함한 로그 Entry를 반환합니다.

Types

type InitFileOptions

type InitFileOptions struct {
	// EnableCriticalLog 치명적인 오류(Error, Fatal, Panic) 레벨의 로그를 별도 파일로 분리합니다.
	// true로 설정하면 에러 로그를 쉽게 추적할 수 있습니다.
	EnableCriticalLog bool

	// EnableVerboseLog 상세 정보(Debug, Trace) 레벨의 로그를 별도 파일로 분리합니다.
	// true로 설정하면 디버깅 시 상세 로그만 확인할 수 있습니다.
	EnableVerboseLog bool
}

InitFileOptions 로그 파일 초기화 옵션입니다.

로그 레벨별로 파일을 분리하여 저장할 수 있습니다. 기본적으로 모든 로그는 메인 로그 파일에 기록되며, 옵션을 활성화하면 특정 레벨의 로그를 별도 파일로 추가 저장합니다.

사용 예제

기본 사용 (레벨 분리 없음):

closer := log.InitFile("myapp", 30)
defer closer.Close()

Critical 로그만 별도 파일로 분리:

opts := log.InitFileOptions{
    EnableCriticalLog: true,  // myapp-YYYYMMDDHHMMSS.critical.log 파일 생성
    EnableVerboseLog:  false,
}
closer := log.InitFileWithOptions("myapp", 30, opts)
defer closer.Close()

모든 레벨을 별도 파일로 분리:

opts := log.InitFileOptions{
    EnableCriticalLog: true,  // myapp-YYYYMMDDHHMMSS.critical.log
    EnableVerboseLog:  true,  // myapp-YYYYMMDDHHMMSS.verbose.log
}
closer := log.InitFileWithOptions("myapp", 30, opts)
defer closer.Close()

생성되는 파일:

  • 메인 로그: myapp-YYYYMMDDHHMMSS.log (모든 레벨)
  • Critical 로그: myapp-YYYYMMDDHHMMSS.critical.log (Error, Fatal, Panic)
  • Verbose 로그: myapp-YYYYMMDDHHMMSS.verbose.log (Debug, Trace)

type LogLevelHook

type LogLevelHook struct {
	// contains filtered or unexported fields
}

LogLevelHook 로그 레벨에 따라 다른 파일에 로그를 기록하는 Hook입니다. logrus의 Hook 인터페이스를 구현합니다.

func (*LogLevelHook) Fire

func (hook *LogLevelHook) Fire(entry *log.Entry) error

Fire 로그 엔트리를 레벨에 따라 적절한 파일에 기록합니다.

func (*LogLevelHook) Levels

func (hook *LogLevelHook) Levels() []log.Level

Levels 이 Hook이 처리할 로그 레벨을 반환합니다.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL