Browse Source

Configurable loglevel

master
Denis Tereshkin 3 years ago
parent
commit
324202bdb7
  1. 7
      src/Config.hs
  2. 20
      src/Main.hs

7
src/Config.hs

@ -7,8 +7,10 @@ module Config @@ -7,8 +7,10 @@ module Config
loadConfig,
) where
import qualified Data.Text as T
import Dhall (FromDhall (autoWith), auto, expected, inputFile)
import ATrade.Logging (Severity)
import qualified Data.Text as T
import Dhall (FromDhall (autoWith), auto, expected,
inputFile)
import GHC.Generics
data SubscriptionConfig = SubscriptionConfig T.Text T.Text
@ -17,6 +19,7 @@ data SubscriptionConfig = SubscriptionConfig T.Text T.Text @@ -17,6 +19,7 @@ data SubscriptionConfig = SubscriptionConfig T.Text T.Text
instance FromDhall SubscriptionConfig
data TransaqConnectorConfig = TransaqConnectorConfig {
logLevel :: Int,
quotesourceEndpoint :: T.Text,
brokerEndpoint :: T.Text,
brokerNotificationsEndpoint :: T.Text,

20
src/Main.hs

@ -6,14 +6,14 @@ import ATrade (libatrade_gitrev, @@ -6,14 +6,14 @@ import ATrade (libatrade_gitrev,
import ATrade.Broker.Protocol (NotificationSqnum (NotificationSqnum))
import ATrade.Broker.Server (startBrokerServer,
stopBrokerServer)
import ATrade.Logging (Message (..), Severity (Info),
import ATrade.Logging (Message (..), Severity (Debug, Error, Info, Warning),
logWith)
import ATrade.Logging (fmtMessage)
import ATrade.QuoteSource.Server (startQuoteSourceServer,
stopQuoteSourceServer)
import ATrade.Types (defaultServerSecurityParams)
import Colog (LogAction, logTextStdout,
(>$<))
import Colog (LogAction, cfilter,
logTextStdout, (>$<))
import Colog.Actions (logTextHandle)
import Config (TransaqConnectorConfig (..),
loadConfig)
@ -34,15 +34,23 @@ import TickerInfoServer (withTickerInfoServer) @@ -34,15 +34,23 @@ import TickerInfoServer (withTickerInfoServer)
import qualified TXMLConnector as Connector
import Version (transaqConnectorVersionText)
mkLogger :: (MonadIO m) => Handle -> LogAction m Message
mkLogger h = fmtMessage >$< (logTextStdout <> logTextHandle h)
mkLogger :: (MonadIO m) => Handle -> Severity -> LogAction m Message
mkLogger h sev = cfilter (\m -> msgSeverity m > sev) (fmtMessage >$< (logTextStdout <> logTextHandle h))
parseLoglevel :: Int -> Severity
parseLoglevel 0 = Error
parseLoglevel 1 = Warning
parseLoglevel 2 = Info
parseLoglevel _ = Debug
main :: IO ()
main = do
initEventCounters
cfg <- loadConfig "transaq-connector.dhall"
let loglevel = parseLoglevel (logLevel cfg)
withFile "transaq-connector.log" AppendMode $ \logH -> do
let logger = mkLogger logH
let logger = mkLogger logH loglevel
let log = logWith logger
log Info "main" $ "Starting transaq-connector-" <>
transaqConnectorVersionText <>

Loading…
Cancel
Save