Documentation
¶
Index ¶
- func InitFile(appName string, retentionDays float64) io.Closer
- func InitFileWithOptions(appName string, retentionDays float64, opts InitFileOptions) io.Closer
- func SetCallerPathPrefix(prefix string)
- func SetDebugMode(debug bool)
- func WithComponent(component string) *log.Entry
- func WithComponentAndFields(component string, fields log.Fields) *log.Entry
- type InitFileOptions
- type LogLevelHook
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitFile ¶
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 ¶
WithComponent component 필드를 포함한 로그 Entry를 반환합니다. 모든 로그에 component 필드를 일관되게 추가하기 위해 사용합니다.
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이 처리할 로그 레벨을 반환합니다.