func registerGlobalLogUI(g *libkb.GlobalContext) error { protocols := []rpc.Protocol{client.NewLogUIProtocol()} if err := client.RegisterProtocols(protocols); err != nil { return err } // Send our current debugging state, so that the server can avoid // sending us verbose logs when we don't want to read them. logLevel := keybase1.LogLevel_INFO if g.Env.GetDebug() { logLevel = keybase1.LogLevel_DEBUG } ctlClient, err := client.GetCtlClient(g) if err != nil { return err } arg := keybase1.SetLogLevelArg{Level: logLevel} ctlClient.SetLogLevel(context.TODO(), arg) return nil }
func configureLogging(g *libkb.GlobalContext, cl *libcmdline.CommandLine) error { g.Log.Debug("+ configureLogging") defer func() { g.Log.Debug("- configureLogging") }() // Whether or not we autoforked, we're now running in client-server // mode (as opposed to standalone). Register a global LogUI so that // calls to G.Log() in the daemon can be copied to us. This is // something of a hack on the daemon side. if !g.Env.GetDoLogForward() || cl.GetLogForward() == libcmdline.LogForwardNone { g.Log.Debug("Disabling log forwarding") return nil } protocols := []rpc.Protocol{client.NewLogUIProtocol()} if err := client.RegisterProtocolsWithContext(protocols, g); err != nil { return err } logLevel := keybase1.LogLevel_INFO if g.Env.GetDebug() { logLevel = keybase1.LogLevel_DEBUG } logClient, err := client.GetLogClient(g) if err != nil { return err } arg := keybase1.RegisterLoggerArg{ Name: "CLI client", Level: logLevel, } if err := logClient.RegisterLogger(context.TODO(), arg); err != nil { g.Log.Warning("Failed to register as a logger: %s", err) } return nil }