hbs2/hbs2-peer/app/RPC2/LogLevel.hs

45 lines
812 B
Haskell

module RPC2.LogLevel where
import HBS2.Prelude.Plated
import HBS2.Net.Proto.Service
import Log
import HBS2.Peer.RPC.Internal.Types
import RPC2.Peer.API
import HBS2.System.Logger.Simple
import Codec.Serialise
data SetLogging =
DebugOn Bool
| TraceOn Bool
deriving (Generic,Eq,Show)
instance Serialise SetLogging
instance (MonadIO m) => HandleMethod m RpcLogLevel where
type instance Input RpcLogLevel = SetLogging
type instance Output RpcLogLevel = ()
handleMethod = \case
DebugOn True -> do
setLogging @DEBUG debugPrefix
debug "DebugOn"
DebugOn False -> do
debug "DebugOff"
setLoggingOff @DEBUG
TraceOn True -> do
setLogging @TRACE tracePrefix
trace "TraceOn"
TraceOn False -> do
trace "TraceOff"
setLoggingOff @TRACE