fix for file leak
This commit is contained in:
parent
4a8a3ae90e
commit
ab948839b5
1 changed files with 14 additions and 2 deletions
|
|
@ -33,6 +33,7 @@ var (
|
||||||
currentLevel = INFO
|
currentLevel = INFO
|
||||||
logger zerolog.Logger
|
logger zerolog.Logger
|
||||||
fileLogger zerolog.Logger
|
fileLogger zerolog.Logger
|
||||||
|
logFile *os.File
|
||||||
once sync.Once
|
once sync.Once
|
||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
)
|
)
|
||||||
|
|
@ -72,18 +73,29 @@ func EnableFileLogging(filePath string) error {
|
||||||
return fmt.Errorf("failed to create log directory: %w", err)
|
return fmt.Errorf("failed to create log directory: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
file, err := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o644)
|
newFile, err := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to open log file: %w", err)
|
return fmt.Errorf("failed to open log file: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fileLogger = zerolog.New(file).With().Timestamp().Caller().Logger()
|
// Close old file if exists
|
||||||
|
if logFile != nil {
|
||||||
|
logFile.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
logFile = newFile
|
||||||
|
fileLogger = zerolog.New(logFile).With().Timestamp().Caller().Logger()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func DisableFileLogging() {
|
func DisableFileLogging() {
|
||||||
mu.Lock()
|
mu.Lock()
|
||||||
defer mu.Unlock()
|
defer mu.Unlock()
|
||||||
|
|
||||||
|
if logFile != nil {
|
||||||
|
logFile.Close()
|
||||||
|
logFile = nil
|
||||||
|
}
|
||||||
fileLogger = zerolog.Logger{}
|
fileLogger = zerolog.Logger{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue