Loading app/main.go +4 −3 Original line number Diff line number Diff line Loading @@ -9,10 +9,11 @@ import ( "proxy-stt/app/websocket" ) var log = logger.GetLogger() func main() { logPath := "/var/log/murena/streams.log" if err := streamlog.Init(logPath); err != nil { logger.GetLogger().Fatal().Err(err).Msg("Failed to init stream logger") if err := streamlog.Init(); err != nil { log.Fatal().Err(err).Msg("Failed to init stream logger") } defer streamlog.CloseLogger() Loading app/streamlog/streamlog.go +37 −7 Original line number Diff line number Diff line Loading @@ -3,24 +3,28 @@ package streamlog import ( "fmt" "os" "os/signal" "path/filepath" "syscall" "sync" "time" // External dependencies "github.com/rs/zerolog" //Internal dependencies "proxy-stt/app/logger" ) const baseLog = "[streamlog]" const logPath = "/var/log/murena/streams.log" var streamSDID = "stream@12345" var hostname = "murena-streamer" var appName = "proxy-stt" var streamlogger zerolog.Logger var ( logFile *os.File mu sync.Mutex ) var log = logger.GetLogger() func Init(logPath string) error { func Init() error { if v := os.Getenv("STREAM_SDID"); v != "" { streamSDID = v } Loading @@ -36,14 +40,40 @@ func Init(logPath string) error { return fmt.Errorf("cannot create log directory: %w", err) } if err := openLogFile(); err != nil { log.Error().Msgf("%s Fail to open log file: %v", baseLog, err) } setupSIGHUPHandler() return nil } func setupSIGHUPHandler() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGHUP) go func() { for range sigs { log.Info().Msgf("%s SIGHUP received, reopen log file", baseLog) if err := openLogFile(); err != nil { log.Error().Msgf("%s Fail to open loglog file: %v", baseLog, err) } } }() } func openLogFile() error { mu.Lock() defer mu.Unlock() if logFile != nil { logFile.Close() } f, err := os.OpenFile(logPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return fmt.Errorf("cannot open log file: %w", err) } streamlogger = zerolog.New(f).With().Logger() logFile = f log.Debug().Msgf("Opened log file on %s", logPath) return nil } Loading Loading
app/main.go +4 −3 Original line number Diff line number Diff line Loading @@ -9,10 +9,11 @@ import ( "proxy-stt/app/websocket" ) var log = logger.GetLogger() func main() { logPath := "/var/log/murena/streams.log" if err := streamlog.Init(logPath); err != nil { logger.GetLogger().Fatal().Err(err).Msg("Failed to init stream logger") if err := streamlog.Init(); err != nil { log.Fatal().Err(err).Msg("Failed to init stream logger") } defer streamlog.CloseLogger() Loading
app/streamlog/streamlog.go +37 −7 Original line number Diff line number Diff line Loading @@ -3,24 +3,28 @@ package streamlog import ( "fmt" "os" "os/signal" "path/filepath" "syscall" "sync" "time" // External dependencies "github.com/rs/zerolog" //Internal dependencies "proxy-stt/app/logger" ) const baseLog = "[streamlog]" const logPath = "/var/log/murena/streams.log" var streamSDID = "stream@12345" var hostname = "murena-streamer" var appName = "proxy-stt" var streamlogger zerolog.Logger var ( logFile *os.File mu sync.Mutex ) var log = logger.GetLogger() func Init(logPath string) error { func Init() error { if v := os.Getenv("STREAM_SDID"); v != "" { streamSDID = v } Loading @@ -36,14 +40,40 @@ func Init(logPath string) error { return fmt.Errorf("cannot create log directory: %w", err) } if err := openLogFile(); err != nil { log.Error().Msgf("%s Fail to open log file: %v", baseLog, err) } setupSIGHUPHandler() return nil } func setupSIGHUPHandler() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGHUP) go func() { for range sigs { log.Info().Msgf("%s SIGHUP received, reopen log file", baseLog) if err := openLogFile(); err != nil { log.Error().Msgf("%s Fail to open loglog file: %v", baseLog, err) } } }() } func openLogFile() error { mu.Lock() defer mu.Unlock() if logFile != nil { logFile.Close() } f, err := os.OpenFile(logPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return fmt.Errorf("cannot open log file: %w", err) } streamlogger = zerolog.New(f).With().Logger() logFile = f log.Debug().Msgf("Opened log file on %s", logPath) return nil } Loading