예제 #1
0
파일: logger.go 프로젝트: eberroca/Shock
func New() *Logger {
	l := &Logger{queue: make(chan m, 1024), logs: map[string]l4g.Logger{}}
	l.logs["access"] = make(l4g.Logger)
	accessf := l4g.NewFileLogWriter(conf.LOGS_PATH+"/access.log", false)
	if accessf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating access log file")
		os.Exit(1)
	}
	l.logs["access"].AddFilter("access", l4g.FINEST, accessf.SetFormat("[%D %T] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["error"] = make(l4g.Logger)
	errorf := l4g.NewFileLogWriter(conf.LOGS_PATH+"/error.log", false)
	if errorf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating error log file")
		os.Exit(1)
	}
	l.logs["error"].AddFilter("error", l4g.FINEST, errorf.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["perf"] = make(l4g.Logger)
	perff := l4g.NewFileLogWriter(conf.LOGS_PATH+"/perf.log", false)
	if perff == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating perf log file")
		os.Exit(1)
	}
	l.logs["perf"].AddFilter("perf", l4g.FINEST, perff.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))
	return l
}
예제 #2
0
파일: logger.go 프로젝트: wtangiit/Shock
// New configures and returns a new logger. It also kicks off the goroutine that
// performs the log writing as messages queue.
func New() *Logger {
	l := &Logger{queue: make(chan m, 1024), logs: map[string]l4g.Logger{}}
	l.logs["access"] = make(l4g.Logger)
	accessf := l4g.NewFileLogWriter(conf.Conf["logs-path"]+"/access.log", false)
	if accessf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating access log file")
		os.Exit(1)
	}
	l.logs["access"].AddFilter("access", l4g.FINEST, accessf.SetFormat("[%D %T] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["error"] = make(l4g.Logger)
	errorf := l4g.NewFileLogWriter(conf.Conf["logs-path"]+"/error.log", false)
	if errorf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating error log file")
		os.Exit(1)
	}
	l.logs["error"].AddFilter("error", l4g.FINEST, errorf.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["perf"] = make(l4g.Logger)
	perff := l4g.NewFileLogWriter(conf.Conf["logs-path"]+"/perf.log", false)
	if perff == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating perf log file")
		os.Exit(1)
	}
	l.logs["perf"].AddFilter("perf", l4g.FINEST, perff.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	go func() {
		select {
		case m := <-l.queue:
			l.logs[m.log].Log(m.lvl, "", m.message)
		}
	}()

	return l
}
예제 #3
0
func NewLogger(name string) *Logger {
	l := &Logger{queue: make(chan m, 1024), logs: map[string]l4g.Logger{}}

	logdir := fmt.Sprintf("%s/%s", conf.LOGS_PATH, name)
	if err := os.MkdirAll(logdir, 0777); err != nil {
		fmt.Errorf("ERROR: error creating directory for logs: %s", logdir)
		os.Exit(1)
	}

	l.logs["access"] = make(l4g.Logger)
	accessf := l4g.NewFileLogWriter(logdir+"/access.log", false)
	if accessf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating access log file")
		os.Exit(1)
	}
	l.logs["access"].AddFilter("access", l4g.FINEST, accessf.SetFormat("[%D %T] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["error"] = make(l4g.Logger)
	errorf := l4g.NewFileLogWriter(logdir+"/error.log", false)
	if errorf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating error log file")
		os.Exit(1)
	}
	l.logs["error"].AddFilter("error", l4g.FINEST, errorf.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["event"] = make(l4g.Logger)
	eventf := l4g.NewFileLogWriter(logdir+"/event.log", false)
	if eventf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating event log file")
		os.Exit(1)
	}
	l.logs["event"].AddFilter("event", l4g.FINEST, eventf.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["debug"] = make(l4g.Logger)
	debugf := l4g.NewFileLogWriter(logdir+"/debug.log", false)
	if debugf == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating debug log file")
		os.Exit(1)
	}
	l.logs["debug"].AddFilter("debug", l4g.FINEST, debugf.SetFormat("[%D %T] [%L] %M").SetRotate(true).SetRotateDaily(true))

	l.logs["perf"] = make(l4g.Logger)
	perff := l4g.NewFileLogWriter(logdir+"/perf.log", false)
	if perff == nil {
		fmt.Fprintln(os.Stderr, "ERROR: error creating perf log file")
		os.Exit(1)
	}
	l.logs["perf"].AddFilter("perf", l4g.FINEST, perff.SetFormat("[%D %T] %M").SetRotate(true).SetRotateDaily(true))

	return l
}