// SetLogger defines the *log.Logger where log messages are sent to. func SetLogger(syslog string, logfile string, verbose bool, debug bool) error { Log = log.New() var handlers []log.Handler var syshandler log.Handler // System specific handler syshandler = GetSystemHandler(syslog, debug) if syshandler != nil { handlers = append(handlers, syshandler) } // FileHandler if logfile != "" { if !PathExists(filepath.Dir(logfile)) { return fmt.Errorf("Log file path doesn't exist: %s", filepath.Dir(logfile)) } if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlInfo, log.Must.FileHandler(logfile, log.LogfmtFormat()), ), ) } else { handlers = append(handlers, log.Must.FileHandler(logfile, log.LogfmtFormat())) } } // StderrHandler if verbose || debug { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlInfo, log.StderrHandler, ), ) } else { handlers = append(handlers, log.StderrHandler) } } else { handlers = append( handlers, log.LvlFilterHandler( log.LvlWarn, log.StderrHandler, ), ) } Log.SetHandler(log.MultiHandler(handlers...)) return nil }
// SetLogger defines the *log.Logger where log messages are sent to. func SetLogger(syslog string, logfile string, verbose bool, debug bool) error { Log = log.New() var handlers []log.Handler // SyslogHandler if syslog != "" { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.Must.SyslogHandler(syslog, log.LogfmtFormat()), ), ) } else { handlers = append(handlers, log.Must.SyslogHandler(syslog, log.LogfmtFormat())) } } // FileHandler if logfile != "" { if !PathExists(filepath.Dir(logfile)) { return fmt.Errorf("Log file path doesn't exist: %s\n", filepath.Dir(logfile)) } if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.Must.FileHandler(logfile, log.LogfmtFormat()), ), ) } else { handlers = append(handlers, log.Must.FileHandler(logfile, log.LogfmtFormat())) } } // StderrHandler if verbose || debug { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.StderrHandler, ), ) } else { handlers = append(handlers, log.StderrHandler) } } Log.SetHandler(log.MultiHandler(handlers...)) return nil }
// InitLog ... func (logM *LogManager) InitLog() { var svrlog = log.New(logM.LogContext, logM.LogContext) svrlog.SetHandler(log.MultiHandler(log.StreamHandler(os.Stderr, log.LogfmtFormat()), log.LvlFilterHandler(log.LvlError, log.Must.FileHandler(logM.LogDir+logM.ErrorFile, log.JsonFormat())), log.LvlFilterHandler(log.LvlInfo, log.Must.FileHandler(logM.LogDir+logM.InfoFile, log.JsonFormat())), log.LvlFilterHandler(log.LvlCrit, log.Must.FileHandler(logM.LogDir+logM.CritFile, log.JsonFormat())), log.LvlFilterHandler(log.LvlDebug, log.Must.FileHandler(logM.LogDir+logM.DebugFile, log.JsonFormat())))) logM.Logger = svrlog }
// SetLogger defines the *log.Logger where log messages are sent to. func SetLogger(syslog string, logfile string, verbose bool, debug bool) { Log = log.New() var handlers []log.Handler // SyslogHandler if syslog != "" { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.Must.SyslogHandler(syslog, log.LogfmtFormat()), ), ) } else { handlers = append(handlers, log.Must.SyslogHandler(syslog, log.LogfmtFormat())) } } // FileHandler if logfile != "" { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.Must.FileHandler(logfile, log.LogfmtFormat()), ), ) } else { handlers = append(handlers, log.Must.FileHandler(logfile, log.LogfmtFormat())) } } // StderrHandler if verbose || debug { if !debug { handlers = append( handlers, log.LvlFilterHandler( log.LvlError, log.StderrHandler, ), ) } else { handlers = append(handlers, log.StderrHandler) } } Log.SetHandler(log.MultiHandler(handlers...)) }
func New() *Engine { // package instance of the helios type engine := &Engine{ HTTPEngine: gin.Default(), Socket: initSocket(), Logger: log.New(), } fileHandler, _ := log.FileHandler("./log.debug", log.LogfmtFormat()) engine.SetHandler(log.MultiHandler(log.LvlFilterHandler(log.LvlWarn, fileHandler), log.StreamHandler(os.Stdout, log.TerminalFormat()))) return engine }
func setSettings(level int, filename string) { logFilename = filename debug = level filehandler := log.Must.FileHandler(filename, log.LogfmtFormat()) handler := log.MultiHandler( filehandler, log.StreamHandler(os.Stderr, log.TerminalFormat())) if debug > 1 { handler = log.CallerStackHandler("%+v", handler) } else { handler = log.CallerFileHandler(handler) } if debug < 1 { handler = log.LvlFilterHandler(log.LvlInfo, handler) } log.Root().SetHandler(handler) log.Info("Logging started", "level", debug, "log_file", logFilename) }
func New() *Engine { // package instance of the helios type engine := &Engine{ HTTPEngine: gin.Default(), Logger: log.New(), } fileHandler, _ := log.FileHandler("./error.log", log.LogfmtFormat()) engine.SetHandler(log.MultiHandler(log.LvlFilterHandler(log.LvlWarn, fileHandler), log.StreamHandler(os.Stdout, log.TerminalFormat()))) socket, err := initSocket() if err != nil { engine.Error("Failed to initialize socket server") } // Handle error cases socket.On("error", func(so socketio.Socket, err error) { engine.Error("Error on socket.io server", "error", err.Error()) }) engine.Socket = socket return engine }