func loadLoggerAndConfig(c *cli.Context, component string) (logger.Logger, *gosteno.Logger, *config.Config) { configPath := c.String("config") if configPath == "" { fmt.Printf("Config path required") os.Exit(1) } conf, err := config.FromFile(configPath) if err != nil { fmt.Printf("Failed to load config: %s", err.Error()) os.Exit(1) } stenoConf := &gosteno.Config{ Sinks: []gosteno.Sink{ gosteno.NewIOSink(os.Stdout), gosteno.NewSyslogSink("vcap.hm9000." + component), }, Level: conf.LogLevel(), Codec: gosteno.NewJsonCodec(), } gosteno.Init(stenoConf) steno := gosteno.NewLogger("vcap.hm9000." + component) hmLogger := logger.NewRealLogger(steno) return hmLogger, steno, conf }
func InitLoggerFromConfig(c *config.Config, logCounter *vcap.LogCounter) { l, err := steno.GetLogLevel(c.Logging.Level) if err != nil { panic(err) } s := make([]steno.Sink, 0, 3) if c.Logging.File != "" { s = append(s, steno.NewFileSink(c.Logging.File)) } else { s = append(s, steno.NewIOSink(os.Stdout)) } if c.Logging.Syslog != "" { s = append(s, steno.NewSyslogSink(c.Logging.Syslog)) } s = append(s, logCounter) stenoConfig := &steno.Config{ Sinks: s, Codec: steno.NewJsonCodec(), Level: l, } steno.Init(stenoConfig) }
func SetupLoggerFromConfig(c *config.Config) { l, err := steno.GetLogLevel(c.Logging.Level) if err != nil { panic(err) } s := make([]steno.Sink, 0) if c.Logging.File != "" { s = append(s, steno.NewFileSink(c.Logging.File)) } else { s = append(s, steno.NewIOSink(os.Stdout)) } if c.Logging.Syslog != "" { s = append(s, steno.NewSyslogSink(c.Logging.Syslog)) } stenoConfig := &steno.Config{ Sinks: s, Codec: steno.NewJsonCodec(), Level: l, } steno.Init(stenoConfig) log = steno.NewLogger("router.global") }
func NewLogger(verbose bool, logFilePath, name string, syslogNamespace string) *gosteno.Logger { level := gosteno.LOG_INFO if verbose { level = gosteno.LOG_DEBUG } loggingConfig := &gosteno.Config{ Sinks: make([]gosteno.Sink, 1), Level: level, Codec: gosteno.NewJsonCodec(), EnableLOC: true} if strings.TrimSpace(logFilePath) == "" { loggingConfig.Sinks[0] = gosteno.NewIOSink(os.Stdout) } else { loggingConfig.Sinks[0] = gosteno.NewFileSink(logFilePath) } if syslogNamespace != "" { loggingConfig.Sinks = append(loggingConfig.Sinks, gosteno.NewSyslogSink(syslogNamespace)) } gosteno.Init(loggingConfig) logger := gosteno.NewLogger(name) logger.Debugf("Component %s in debug mode!", name) return logger }
func loadLoggerAndConfig(c *cli.Context, component string) (logger.Logger, *gosteno.Logger, *config.Config) { configPath := c.String("config") if configPath == "" { fmt.Printf("Config path required") os.Exit(1) } conf, err := config.FromFile(configPath) if err != nil { fmt.Printf("Failed to load config: %s", err.Error()) os.Exit(1) } sinks := make([]gosteno.Sink, 0, 3) if conf.LogDirectory != "" { logName := fmt.Sprintf("hm9000_%s.log", component) logFile := path.Join(conf.LogDirectory, logName) sinks = append(sinks, gosteno.NewFileSink(logFile)) } else { sinks = append(sinks, gosteno.NewIOSink(os.Stdout)) } sinks = append(sinks, gosteno.NewSyslogSink("vcap.hm9000."+component)) stenoConf := &gosteno.Config{ Sinks: sinks, Level: conf.LogLevel(), Codec: gosteno.NewJsonCodec(), } gosteno.Init(stenoConf) steno := gosteno.NewLogger("vcap.hm9000." + component) hmLogger := logger.NewRealLogger(steno) debugAddr := c.String("debugAddr") if debugAddr != "" { _, err = cf_debug_server.Run(debugAddr, nil) if err != nil { hmLogger.Error("Failed to start debug server", err) os.Exit(1) } } return hmLogger, steno, conf }
func SetupSteno(logConfig *LogConfig) { level, err := steno.GetLogLevel(logConfig.Level) if err != nil { panic(err) } sinks := make([]steno.Sink, 0) if logConfig.File != "" { sinks = append(sinks, steno.NewFileSink(logConfig.File)) } else { sinks = append(sinks, steno.NewIOSink(os.Stdout)) } if logConfig.Syslog != "" { sinks = append(sinks, steno.NewSyslogSink(logConfig.Syslog)) } stenoConfig := &steno.Config{ Sinks: sinks, Codec: steno.NewJsonCodec(), Level: level, } steno.Init(stenoConfig) }
func GetNewSyslogSink(namespace string) *gosteno.Syslog { return gosteno.NewSyslogSink(namespace) }