func configureLogging() { if testing.Verbose() { wlog.SetLevel(wlog.DEBUG) } else { wlog.SetLevel(wlog.OFF) } }
// SetupLogging configures the logging output. // debug will set the log level to DEBUG // quiet will set the log level to ERROR // logfile will direct the logging output to a file. Empty string is // interpreted as stderr. If there is an error opening the file the // logger will fallback to stderr. func SetupLogging(debug, quiet bool, logfile string) { log.SetFlags(0) if debug { wlog.SetLevel(wlog.DEBUG) } if quiet { wlog.SetLevel(wlog.ERROR) } var oFile *os.File if logfile != "" { if _, err := os.Stat(logfile); os.IsNotExist(err) { if oFile, err = os.Create(logfile); err != nil { log.Printf("E! Unable to create %s (%s), using stderr", logfile, err) oFile = os.Stderr } } else { if oFile, err = os.OpenFile(logfile, os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { log.Printf("E! Unable to append to %s (%s), using stderr", logfile, err) oFile = os.Stderr } } } else { oFile = os.Stderr } log.SetOutput(newTelegrafWriter(oFile)) }
// Helper test function for batcher func testBatcher(t *testing.T, name, script string) (clock.Setter, *kapacitor.ExecutingTask, <-chan error, *kapacitor.TaskMaster) { if testing.Verbose() { wlog.SetLevel(wlog.DEBUG) } else { wlog.SetLevel(wlog.OFF) } // Create a new execution env tm := kapacitor.NewTaskMaster("testBatcher", logService) tm.HTTPDService = httpService tm.TaskStore = taskStore{} tm.DeadmanService = deadman{} tm.Open() // Create task task, err := tm.NewTask(name, script, kapacitor.BatchTask, dbrps, 0, nil) if err != nil { t.Fatal(err) } // Load test data var allData []io.ReadCloser var data io.ReadCloser for i := 0; err == nil; { f := fmt.Sprintf("%s.%d.brpl", name, i) data, err = os.Open(path.Join("data", f)) if err == nil { allData = append(allData, data) i++ } } if len(allData) == 0 { t.Fatal("could not find any data files for", name) } //Start the task et, err := tm.StartTask(task) if err != nil { t.Fatal(err) } // Replay test data to executor batches := tm.BatchCollectors(name) // Use 1971 so that we don't get true negatives on Epoch 0 collisions c := clock.New(time.Date(1971, 1, 1, 0, 0, 0, 0, time.UTC)) replayErr := kapacitor.ReplayBatchFromIO(c, allData, batches, false) t.Log(string(et.Task.Dot())) return c, et, replayErr, tm }