on 0336e41 help sign in
28 lines 877 B history raw
1-- Copyright (c) 2019 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2-- SPDX-License-Identifier: Apache-2.0
4{-# LANGUAGE RankNTypes #-}
5-- | This is a compatibility module that abstracts over the
6-- concrete choice of logging framework so users can plug in whatever
7-- framework they want to.
8module Development.IDE.Types.Logger
9 ( Logger(..)
10 , makeOneLogger
11 , makeNopLogger
12 ) where
14import qualified Data.Text as T
15import GHC.Stack
17data Logger = Logger {
18 logSeriousError :: HasCallStack => T.Text -> IO ()
19 , logInfo :: HasCallStack => T.Text -> IO ()
20 , logDebug :: HasCallStack => T.Text -> IO ()
21 , logWarning :: HasCallStack => T.Text -> IO ()
22 }
24makeNopLogger :: Logger
25makeNopLogger = makeOneLogger $ const $ pure ()
27makeOneLogger :: (HasCallStack => T.Text -> IO ()) -> Logger
28makeOneLogger x = Logger x x x x