func main() { // SETUP err := cfg.fromFile("config.json") if err != nil { panic("No config.json file found; exiting.") } loggo.ConfigureLoggers(cfg.LogLevels) templates = template.Must(template.ParseGlob("data/html/*")) status = newStatusService() mux := httprouter.New() mux.GET("/", indexHandler) mux.GET("/.status", statusHandler) // Trap interruption signals sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, os.Interrupt, os.Kill) go func() { <-sigChan // clean up if necessary mainLogger.Warningf("Received interrupt, shutting down") os.Exit(1) }() // START SERVICES mainLogger.Infof("Starting HTTP server, listening at port %v", cfg.HTTPPort) panic(http.ListenAndServe(":"+cfg.HTTPPort, mux)) }
func main() { args := os.Args if len(args) > 1 { loggo.ConfigureLoggers(args[1]) } else { fmt.Println("Add a parameter to configure the logging:") fmt.Println("E.g. \"<root>=INFO;first=TRACE\"") } fmt.Println("\nCurrent logging levels:") fmt.Println(loggo.LoggerInfo()) fmt.Println("") rootLogger.Infof("Start of test.") FirstCritical("first critical") FirstError("first error") FirstWarning("first warning") FirstInfo("first info") FirstTrace("first trace") SecondCritical("first critical") SecondError("first error") SecondWarning("first warning") SecondInfo("first info") SecondTrace("first trace") }
func (*loggerSuite) TestConfigureLoggers(c *gc.C) { for i, test := range configureLoggersTests { c.Logf("test %d: %q", i, test.spec) loggo.ResetLoggers() err := loggo.ConfigureLoggers(test.spec) c.Check(loggo.LoggerInfo(), gc.Equals, test.info) if test.err != "" { c.Assert(err, gc.ErrorMatches, test.err) continue } c.Assert(err, gc.IsNil) // Test that it's idempotent. err = loggo.ConfigureLoggers(test.spec) c.Assert(err, gc.IsNil) c.Assert(loggo.LoggerInfo(), gc.Equals, test.info) // Test that calling ConfigureLoggers with the // output of LoggerInfo works too. err = loggo.ConfigureLoggers(test.info) c.Assert(err, gc.IsNil) c.Assert(loggo.LoggerInfo(), gc.Equals, test.info) } }