func setupLogging() { if config.Settings.Moire.Debug { log.Info("Logging in DEBUG mode") log.SetLevel(log.DebugLevel) } // log.SetFlags(log.Ldate | log.Ltime | log.Llongfile) log.SetFormatter(&log.TextFormatter{}) if config.Settings.Moire.SentryDSN != "" { levels := []log.Level{ log.PanicLevel, log.FatalLevel, log.ErrorLevel, } hook, err := logrus_sentry.NewSentryHook(config.Settings.Moire.SentryDSN, levels) if err != nil { log.Error("Unable to connect to sentry") } else { log.Info("Adding Sentry Hook") log.AddHook(hook) } } }
func main() { var err error conf.Use(configure.NewFlag()) conf.Use(configure.NewEnvironment()) conf.Parse() models.Init( *dbUser, *dbPass, *dbService, *dbPort, *dbName, ) _, err = logrus_sentry.NewSentryHook(*sentryDSN, []log.Level{ log.PanicLevel, log.FatalLevel, log.ErrorLevel, }) if err != nil { log.WithFields(log.Fields{ "error": err, }).Fatal("Unable to get connect to sentry") return } bot := ircx.Classic(*serverName, *name) log.WithFields(log.Fields{ "address": *serverName, }).Info("Starting connection to the IRC server") reconnect(bot.Connect, "IRC") bot.HandleFunc(irc.RPL_WELCOME, registerHandler) bot.HandleFunc(irc.PING, pingHandler) bot.HandleFunc(irc.PRIVMSG, msgHandler) bot.HandleFunc(irc.INVITE, inviteHandler) log.WithFields(log.Fields{ "address": *dispatch, }).Info("Starting connection to RPC the server") reconnect(connectRPC, "RPC") bot.HandleLoop() log.Println("finished") }
func init() { log.SetFormatter(&TextFormatter{}) go func() { hook, err := logrus_sentry.NewSentryHook(sentryDsn, []log.Level{ log.PanicLevel, log.FatalLevel, log.ErrorLevel, }) if err == nil { log.AddHook(hook) log.Debug("added sentry hook") } else { log.Error(err) } }() }
func init() { usage := `Tyk API Gateway. Usage: tyk [options] Options: -h --help Show this screen --conf=FILE Load a named configuration file --port=PORT Listen on PORT (overrides confg file) --memprofile Generate a memory profile --cpuprofile Generate a cpu profile --debug Enable Debug output --import-blueprint=<file> Import an API Blueprint file --import-swagger=<file> Import a Swagger file --create-api Creates a new API Definition from the blueprint --org-id=><id> Assign the API Defintition to this org_id (required with create) --upstream-target=<url> Set the upstream target for the definition --as-mock Creates the API as a mock based on example fields --for-api=<path> Adds blueprint to existing API Defintition as version --as-version=<version> The version number to use when inserting ` arguments, err := docopt.Parse(usage, nil, true, VERSION, false, false) if err != nil { log.WithFields(logrus.Fields{ "prefix": "main", }).Warning("Error while parsing arguments: ", err) } // Enable command mode for k, _ := range CommandModeOptions { v := arguments[k] if v == true { HandleCommandModeArgs(arguments) os.Exit(0) } if v != nil && v != false { HandleCommandModeArgs(arguments) os.Exit(0) } } filename := "/etc/tyk/tyk.conf" value, _ := arguments["--conf"] if value != nil { log.WithFields(logrus.Fields{ "prefix": "main", }).Debug(fmt.Sprintf("Using %s for configuration", value.(string))) filename = arguments["--conf"].(string) } else { log.WithFields(logrus.Fields{ "prefix": "main", }).Debug("No configuration file defined, will try to use default (./tyk.conf)") } loadConfig(filename, &config) if config.Storage.Type != "redis" { log.WithFields(logrus.Fields{ "prefix": "main", }).Fatal("Redis connection details not set, please ensure that the storage type is set to Redis and that the connection parameters are correct.") } setupGlobals() port, _ := arguments["--port"] if port != nil { portNum, err := strconv.Atoi(port.(string)) if err != nil { log.WithFields(logrus.Fields{ "prefix": "main", }).Error("Port specified in flags must be a number!") log.WithFields(logrus.Fields{ "prefix": "main", }).Error(err) } else { config.ListenPort = portNum } } doMemoryProfile, _ = arguments["--memprofile"].(bool) doCpuProfile, _ = arguments["--cpuprofile"].(bool) doDebug, _ := arguments["--debug"] log.Level = logrus.InfoLevel if doDebug == true { log.Level = logrus.DebugLevel log.WithFields(logrus.Fields{ "prefix": "main", }).Debug("Enabling debug-level output") } if config.UseSentry { log.WithFields(logrus.Fields{ "prefix": "main", }).Debug("Enabling Sentry support") hook, err := logrus_sentry.NewSentryHook(config.SentryCode, []logrus.Level{ logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel, }) hook.Timeout = 0 if err == nil { log.Hooks.Add(hook) } log.WithFields(logrus.Fields{ "prefix": "main", }).Debug("Sentry hook active") } }