// If the logger is a file based logger, close and re-open the file. // This allows for file rotation by 'mv'ing the file then signalling // the process to trigger this function. func (s *Server) ReOpenLogFile() { // Check to make sure this is a file logger. log.Lock() ll := log.logger log.Unlock() if ll == nil { Noticef("File log re-open ignored, no logger") return } if s.opts.LogFile == "" { Noticef("File log re-open ignored, not a file logger") } else { fileLog := logger.NewFileLogger(s.opts.LogFile, s.opts.Logtime, s.opts.Debug, s.opts.Trace, true) s.SetLogger(fileLog, s.opts.Debug, s.opts.Trace) Noticef("File log re-opened") } }
func GetLogger(logfile, rsyslog string, syslog, debug, trace bool) (log server.Logger) { if logfile != "" { log = logger.NewFileLogger(logfile, true, debug, trace, true) } else if rsyslog != "" { log = logger.NewRemoteSysLogger(rsyslog, debug, trace) } else if syslog { log = logger.NewSysLogger(debug, trace) } else { colors := true // Check to see if stderr is being redirected and if so turn off color // Also turn off colors if we're running on Windows where os.Stderr.Stat() returns an invalid handle-error stat, err := os.Stderr.Stat() if err != nil || (stat.Mode()&os.ModeCharDevice) == 0 { colors = false } log = logger.NewStdLogger(true, debug, trace, colors, true) } return }
func configureLogger(s *server.Server, opts *server.Options) { var log server.Logger if opts.LogFile != "" { log = logger.NewFileLogger(opts.LogFile, opts.Logtime, opts.Debug, opts.Trace, true) } else if opts.RemoteSyslog != "" { log = logger.NewRemoteSysLogger(opts.RemoteSyslog, opts.Debug, opts.Trace) } else if opts.Syslog { log = logger.NewSysLogger(opts.Debug, opts.Trace) } else { colors := true // Check to see if stderr is being redirected and if so turn off color // Also turn off colors if we're running on Windows where os.Stderr.Stat() returns an invalid handle-error stat, err := os.Stderr.Stat() if err != nil || (stat.Mode()&os.ModeCharDevice) == 0 { colors = false } log = logger.NewStdLogger(opts.Logtime, opts.Debug, opts.Trace, colors, true) } s.SetLogger(log, opts.Debug, opts.Trace) }