package rpc import ( "context" "github.com/ethereum/go-ethereum/log" "github.com/woop-chain/woop/eth/rpc" "github.com/woop-chain/woop/wiki" "github.com/woop-chain/woop/internal/utils" ) // PublicDebugService Internal JSON RPC for debugging purpose type PublicDebugService struct { wiki *wiki.Woop version Version } // NewPublicDebugAPI creates a new API for the RPC interface func NewPublicDebugAPI(wiki *wiki.Woop, version Version) rpc.API { return rpc.API{ Namespace: version.Namespace(), Version: APIVersion, Service: &PublicDebugService{wiki, version}, Public: false, } } // SetLogVerbosity Sets log verbosity on runtime // curl -H "Content-Type: application/json" -d '{"method":"wiki_setLogVerbosity","params":[5],"id":1}' http://127.0.0.1:9500 func (s *PublicDebugService) SetLogVerbosity(ctx context.Context, level int) (map[string]interface{}, error) { if level < int(log.LvlCrit) || level > int(log.LvlTrace) { return nil, ErrInvalidLogLevel } verbosity := log.Lvl(level) utils.SetLogVerbosity(verbosity) return map[string]interface{}{"verbosity": verbosity.String()}, nil }