func initDaemon(config *menderConfig, dev *device, env BootEnvReadWriter, opts *runOptionsType) (*menderDaemon, error) { mp, err := commonInit(config, opts) if err != nil { return nil, err } mp.device = dev controller, err := NewMender(*config, *mp) if controller == nil { mp.store.Close() return nil, errors.Wrap(err, "error initializing mender controller") } if *opts.bootstrapForce { controller.ForceBootstrap() } daemon := NewDaemon(controller, mp.store) // add logging hook; only daemon needs this log.AddHook(NewDeploymentLogHook(DeploymentLogger)) return daemon, nil }
func TestDeploymentLoggingHook(t *testing.T) { tempDir, _ := ioutil.TempDir("", "logs") defer os.RemoveAll(tempDir) deploymentLogger := NewDeploymentLogManager(tempDir) log.AddHook(NewDeploymentLogHook(deploymentLogger)) log.Info("test1") deploymentLogger.Enable("1111-2222") logFile := fmt.Sprintf(logFileNameScheme, 1, "1111-2222") fileLocation := path.Join(tempDir, logFile) log.Debug("test2") deploymentLogger.Disable() log.Info("test3") // test correct format of log messages if !logFileContains(fileLocation, `{"level":"debug","message":"test2","timestamp":"`) { t.FailNow() } }