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 (w *Logged) HandlerFor(target, level, format string) (log.Handler, error) { lvl, err := log.LvlFromString(level) if err != nil { return nil, fmt.Errorf("Invalid log level: %v", err) } var logformat log.Format switch format { case "json": logformat = log.JsonFormat() case "logfmt": logformat = log.LogfmtFormat() case "terminal", "term": switch { case target == "stdout" && term.IsTty(os.Stdout.Fd()): logformat = log.TerminalFormat() case target == "stderr" && term.IsTty(os.Stderr.Fd()): logformat = log.TerminalFormat() default: logformat = log.LogfmtFormat() } default: return nil, fmt.Errorf("Invalid log format: %v", format) } var handler log.Handler switch target { case "stdout": handler = log.StreamHandler(colorable.NewColorableStdout(), logformat) case "stderr": handler = log.StreamHandler(colorable.NewColorableStderr(), logformat) case "false": handler = log.DiscardHandler() default: handler, err = log.FileHandler(target, logformat) if err != nil { return nil, fmt.Errorf("Failed to open log file '%s': %v", target, err) } } return log.LvlFilterHandler(lvl, handler), nil }
func TestMain(m *testing.M) { Log := llog.New() h, _ := llog.FileHandler("./test.txt", llog.LogfmtFormat()) Log.SetHandler(h) server = s.NewServer(Log, ":81234") n, err := nats.Connect("nats://localhost:4222") if err != nil { llog.Error("Can't connect to NATS", "error", err) return } nc, _ := nats.NewEncodedConn(n, nats.JSON_ENCODER) l, err := net.Listen("tcp", ":8080") if err != nil { nc.Close() llog.Error("Can't listen on provided port", "error", err) return } server.BC = l server.NC = nc server.Loc, _ = time.LoadLocation(s.BraceletLocation) log.Println("Connections established") os.Exit(m.Run()) }
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 }