git.iko.soy/typeable/control-logger
on 4e31de2 help sign in
control-logger.cabal+43−51
since splitsnapshots
unifiedsplit
@@ -1,55 +1,47 @@
1−cabal-version: 2.4
1+cabal-version: 2.4
2−name: control-logger
2+name: control-logger
3−version: 0.1.0.0
3+version: 0.1.0.0
4−synopsis: Logger used by all projects
4+synopsis: Logger used by all projects
5−license-file: LICENSE
5+license-file: LICENSE
6−build-type: Simple
6+build-type: Simple
7
7
8library
8library
9− hs-source-dirs: src
9+ hs-source-dirs: src
10− ghc-options: -Wall
10+ ghc-options: -Wall
11−
12 if !impl(ghcjs)
11 if !impl(ghcjs)
13− exposed-modules:
12+ exposed-modules: Control.Logger
14− Control.Logger
15− Control.Logger.Katip
13+ Control.Logger.Katip
16− Control.Logger.Katip.Utils
14+ Control.Logger.Katip.Utils
17− Control.Logger.Orphans
15+ Control.Logger.Orphans
18−
19− exposed-modules: Control.Logger.Internal
16+ exposed-modules: Control.Logger.Internal
20− build-depends:
17+ build-depends: base
21− , aeson
18+ , aeson
22− , base >=4.11
23− , bytestring
19+ , bytestring
24− , control-has
20+ , control-has
25− , control-has-katip
21+ , control-has-katip
26− , deepseq
22+ , deepseq
27− , exceptions
23+ , exceptions
28− , fast-logger >=2.4.11
24+ , fast-logger
29− , http-client
25+ , http-client
30− , lens
26+ , lens
31− , monad-logger
27+ , monad-logger
32− , mtl
28+ , mtl
33− , shakespeare
29+ , shakespeare
34− , text
30+ , text
35− , time
31+ , time
36− , unordered-containers
32+ , unordered-containers
37−
38 if !impl(ghcjs)
33 if !impl(ghcjs)
39− build-depends:
34+ build-depends: katip >= 0.8.8.0
40− , katip >=0.8.8.0
41− , optparse-applicative
35+ , optparse-applicative
42−
43− default-language: Haskell2010
36+ default-language: Haskell2010
44− default-extensions:
37+ default-extensions: RankNTypes
45− ConstraintKinds
46− DataKinds
38+ DataKinds
47− DeriveGeneric
48− FlexibleContexts
39+ FlexibleContexts
49− FlexibleInstances
40+ FlexibleInstances
50− LambdaCase
41+ LambdaCase
51− OverloadedStrings
42+ OverloadedStrings
52− RankNTypes
43+ ScopedTypeVariables
44+ DeriveGeneric
45+ ConstraintKinds
53− RecordWildCards
46+ RecordWildCards
54− ScopedTypeVariables
55− TypeSynonymInstances
47+ TypeSynonymInstances
src/Control/Logger.hs+5−2
@@ -44,9 +44,7 @@ import Control.Has
44import Control.Lens hiding (censoring)
44import Control.Lens hiding (censoring)
45import Control.Logger.Internal
45import Control.Logger.Internal
46import Control.Logger.Orphans ()
46import Control.Logger.Orphans ()
47−import Control.Monad
48import Control.Monad.Catch
47import Control.Monad.Catch
49−import Control.Monad.IO.Class
50import qualified Data.List as List
48import qualified Data.List as List
51import Data.Monoid
49import Data.Monoid
52import Data.Text (Text)
50import Data.Text (Text)
@@ -56,6 +54,11 @@ import GHC.Stack
56import Katip (ToObject (..))
54import Katip (ToObject (..))
57import System.Log.FastLogger
55import System.Log.FastLogger
58import Text.Shakespeare.Text (st)
56import Text.Shakespeare.Text (st)
57+-- import Control.Monad.RWS (censor)
58+#if MIN_VERSION_mtl(2,3,0)
59+import Control.Monad
60+import Control.Monad.IO.Class
61+#endif
59
62
60logError
63logError
61 :: (LoggingMonad r m)
64 :: (LoggingMonad r m)
src/Control/Logger/Internal.hs+5−17
@@ -16,12 +16,14 @@ module Control.Logger.Internal
16
16
17import Control.Has
17import Control.Has
18import Control.Lens
18import Control.Lens
19−import Control.Monad.IO.Class
20import Control.DeepSeq
19import Control.DeepSeq
21−import Data.Aeson (ToJSON, FromJSON, Object, Value(..))
20+import Data.Aeson (ToJSON, FromJSON, Object)
22import Data.Text (Text)
21import Data.Text (Text)
23import Data.Monoid
22import Data.Monoid
24import GHC.Stack
23import GHC.Stack
24+#if MIN_VERSION_mtl(2,3,0)
25+import Control.Monad.IO.Class
26+#endif
25
27
26
28
27data LogSeverity
29data LogSeverity
@@ -77,18 +79,4 @@ logMsgWith logger s t =
77 liftIO $ runLogger logger callStack s t
79 liftIO $ runLogger logger callStack s t
78
80
79runLogger :: Logger -> CallStack -> LogSeverity -> Text -> IO ()
81runLogger :: Logger -> CallStack -> LogSeverity -> Text -> IO ()
80−runLogger (Logger ctx theScrubber logger) cs ls txt
82+runLogger (Logger ctx theScrubber logger) cs ls txt = logger ctx cs ls (appEndo theScrubber txt)
81− = logger (scrubContext theScrubber ctx) cs ls (appEndo theScrubber txt)
82−
83−
84−scrubContext :: Endo Text -> Object -> Object
85−scrubContext theScrubber = fmap doScrub
86− where
87− doScrub :: Value -> Value
88− doScrub = \case
89− Object object -> Object (fmap doScrub object)
90− Array array -> Array (fmap doScrub array)
91− String string -> String (appEndo theScrubber string)
92− n@Number{} -> n
93− b@Bool{} -> b
94− n@Null -> n
src/Control/Logger/Orphans.hs+2−2
@@ -10,7 +10,7 @@ import Control.EnvT
10import Control.Has
10import Control.Has
11import Control.Logger.Internal
11import Control.Logger.Internal
12import Control.Monad.Logger
12import Control.Monad.Logger
13−import qualified Data.Text.Encoding as T
13+import qualified Data.Text as T
14import GHC.Stack
14import GHC.Stack
15
15
16
16
@@ -21,7 +21,7 @@ instance (Has Logger r, MonadIO m)
21 in withFrozenCallStack
21 in withFrozenCallStack
22 $ logMsg
22 $ logMsg
23 (mlLevelToLogSeverity level)
23 (mlLevelToLogSeverity level)
24− (T.decodeUtf8Lenient . fromLogStr . toLogStr $ msg)
24+ (T.pack . show . toLogStr $ msg)
25
25
26locToCallStack :: Loc -> CallStack
26locToCallStack :: Loc -> CallStack
27locToCallStack Loc {..} = fromCallSiteList
27locToCallStack Loc {..} = fromCallSiteList