\subsection{Cardano.BM.Configuration.Static}
\label{code:Cardano.BM.Configuration.Static}

%if style == newcode
\begin{code}
{-# LANGUAGE CPP                 #-}
{-# LANGUAGE OverloadedStrings   #-}

module Cardano.BM.Configuration.Static
    (
      defaultConfigStdout
    , defaultConfigTesting
    ) where

import qualified Cardano.BM.Configuration.Model as CM
import           Cardano.BM.Data.BackendKind
import           Cardano.BM.Data.Output
import           Cardano.BM.Data.Severity

\end{code}
%endif

\subsubsection{Default configuration outputting on |stdout|}
\begin{code}
defaultConfigStdout :: IO CM.Configuration
defaultConfigStdout :: IO Configuration
defaultConfigStdout = do
    Configuration
c <- IO Configuration
CM.empty
    Configuration -> Severity -> IO ()
CM.setMinSeverity Configuration
c Severity
Debug
    Configuration -> [BackendKind] -> IO ()
CM.setSetupBackends Configuration
c [BackendKind
KatipBK]
    Configuration -> [BackendKind] -> IO ()
CM.setDefaultBackends Configuration
c [BackendKind
KatipBK]
    Configuration -> [ScribeDefinition] -> IO ()
CM.setSetupScribes Configuration
c [ ScribeDefinition :: ScribeKind
-> ScribeFormat
-> Text
-> ScribePrivacy
-> Maybe RotationParameters
-> Severity
-> Severity
-> ScribeDefinition
ScribeDefinition {
                              scName :: Text
scName = Text
"text"
                            , scFormat :: ScribeFormat
scFormat = ScribeFormat
ScText
                            , scKind :: ScribeKind
scKind = ScribeKind
StdoutSK
                            , scPrivacy :: ScribePrivacy
scPrivacy = ScribePrivacy
ScPublic
                            , scRotation :: Maybe RotationParameters
scRotation = Maybe RotationParameters
forall a. Maybe a
Nothing
                            , scMinSev :: Severity
scMinSev = Severity
forall a. Bounded a => a
minBound
                            , scMaxSev :: Severity
scMaxSev = Severity
forall a. Bounded a => a
maxBound
                            }
                         ,  ScribeDefinition :: ScribeKind
-> ScribeFormat
-> Text
-> ScribePrivacy
-> Maybe RotationParameters
-> Severity
-> Severity
-> ScribeDefinition
ScribeDefinition {
                              scName :: Text
scName = Text
"json"
                            , scFormat :: ScribeFormat
scFormat = ScribeFormat
ScJson
                            , scKind :: ScribeKind
scKind = ScribeKind
StdoutSK
                            , scPrivacy :: ScribePrivacy
scPrivacy = ScribePrivacy
ScPublic
                            , scRotation :: Maybe RotationParameters
scRotation = Maybe RotationParameters
forall a. Maybe a
Nothing
                            , scMinSev :: Severity
scMinSev = Severity
forall a. Bounded a => a
minBound
                            , scMaxSev :: Severity
scMaxSev = Severity
forall a. Bounded a => a
maxBound
                            }
                         ]
    Configuration -> [Text] -> IO ()
CM.setDefaultScribes Configuration
c [Text
"StdoutSK::text"]
    Configuration -> IO Configuration
forall (m :: * -> *) a. Monad m => a -> m a
return Configuration
c

\end{code}

\subsubsection{Default configuration for testing}
\begin{code}
defaultConfigTesting :: IO CM.Configuration
defaultConfigTesting :: IO Configuration
defaultConfigTesting = do
    Configuration
c <- IO Configuration
CM.empty
    Configuration -> Severity -> IO ()
CM.setMinSeverity Configuration
c Severity
Debug
    Configuration -> [BackendKind] -> IO ()
CM.setSetupBackends Configuration
c [BackendKind
KatipBK, BackendKind
AggregationBK]
    Configuration -> [BackendKind] -> IO ()
CM.setDefaultBackends Configuration
c [BackendKind
KatipBK, BackendKind
AggregationBK]
    Configuration -> [ScribeDefinition] -> IO ()
CM.setSetupScribes Configuration
c [ ScribeDefinition :: ScribeKind
-> ScribeFormat
-> Text
-> ScribePrivacy
-> Maybe RotationParameters
-> Severity
-> Severity
-> ScribeDefinition
ScribeDefinition {
                              scName :: Text
scName = Text
"nooutput"
                            , scFormat :: ScribeFormat
scFormat = ScribeFormat
ScText
                            , scKind :: ScribeKind
scKind = ScribeKind
DevNullSK
                            , scPrivacy :: ScribePrivacy
scPrivacy = ScribePrivacy
ScPublic
                            , scRotation :: Maybe RotationParameters
scRotation = Maybe RotationParameters
forall a. Maybe a
Nothing
                            , scMinSev :: Severity
scMinSev = Severity
forall a. Bounded a => a
minBound
                            , scMaxSev :: Severity
scMaxSev = Severity
forall a. Bounded a => a
maxBound
                            }
                      ]
    Configuration -> [Text] -> IO ()
CM.setDefaultScribes Configuration
c [Text
"NullSK::nooutput"]

    Configuration -> IO Configuration
forall (m :: * -> *) a. Monad m => a -> m a
return Configuration
c

\end{code}