diff --git a/bench/Bench.hs b/bench/Bench.hs index 3563ec75ffcb5f5010cf8c4f71ca39d75c33951c..1606fbe1c106583f126c13cbc2564ff977649de7 100644 --- a/bench/Bench.hs +++ b/bench/Bench.hs @@ -18,14 +18,14 @@ import qualified Data.ByteString.Lazy as L main :: IO () main = defaultMain [ bgroup "direct" - [ bench "msg/8" (whnf (f $ \s _ _ -> renderDefault s) 8) - , bench "msg/16" (whnf (f $ \s _ _ -> renderDefault s) 16) - , bench "msg/32" (whnf (f $ \s _ _ -> renderDefault s) 32) + [ bench "msg/8" (whnf (f renderDefault) 8) + , bench "msg/16" (whnf (f renderDefault) 16) + , bench "msg/32" (whnf (f renderDefault) 32) ] , bgroup "netstr" - [ bench "msg/8" (whnf (f $ \_ _ _ -> renderNetstr) 8) - , bench "msg/16" (whnf (f $ \_ _ _ -> renderNetstr) 16) - , bench "msg/32" (whnf (f $ \_ _ _ -> renderNetstr) 32) + [ bench "msg/8" (whnf (f renderNetstr) 8) + , bench "msg/16" (whnf (f renderNetstr) 16) + , bench "msg/32" (whnf (f renderNetstr) 32) ] , bgroup "custom" [ bench "msg/8" (whnf (f renderCustom) 8) @@ -33,14 +33,14 @@ main = defaultMain , bench "msg/32" (whnf (f renderCustom) 32) ] , bgroup "direct" - [ bench "field/8" (whnf (g $ \s _ _ -> renderDefault s) 8) - , bench "field/16" (whnf (g $ \s _ _ -> renderDefault s) 16) - , bench "field/32" (whnf (g $ \s _ _ -> renderDefault s) 32) + [ bench "field/8" (whnf (g renderDefault) 8) + , bench "field/16" (whnf (g renderDefault) 16) + , bench "field/32" (whnf (g renderDefault) 32) ] , bgroup "netstr" - [ bench "field/8" (whnf (g $ \_ _ _ -> renderNetstr) 8) - , bench "field/16" (whnf (g $ \_ _ _ -> renderNetstr) 16) - , bench "field/32" (whnf (g $ \_ _ _ -> renderNetstr) 32) + [ bench "field/8" (whnf (g renderNetstr) 8) + , bench "field/16" (whnf (g renderNetstr) 16) + , bench "field/32" (whnf (g renderNetstr) 32) ] , bgroup "custom" [ bench "field/8" (whnf (g renderCustom) 8) diff --git a/src/System/Logger.hs b/src/System/Logger.hs index 649acde4f82097ff0ee901e70a7425b176bccdeb..0fd3fa0eb7eee37014d2627027181b28fb62111e 100644 --- a/src/System/Logger.hs +++ b/src/System/Logger.hs @@ -22,8 +22,10 @@ module System.Logger , delimiter , setDelimiter , setNetStrings - , setRendererNetstr , setRendererDefault + , setRendererNetstr + , renderDefault + , renderNetstr , bufSize , setBufSize , name @@ -67,7 +69,7 @@ import Data.Maybe (fromMaybe) import Data.Text (Text) import Data.UnixTime import System.Environment (lookupEnv) -import System.Logger.Message as M +import System.Logger.Message as M hiding (renderDefault_, renderNetstr_) import System.Logger.Settings import Prelude hiding (log) diff --git a/src/System/Logger/Message.hs b/src/System/Logger/Message.hs index 38b1761366e7a3f0f9b2956e086880132f9c281c..149fa014344b4e78b8bca57bb0c239d79f98e93c 100644 --- a/src/System/Logger/Message.hs +++ b/src/System/Logger/Message.hs @@ -31,8 +31,8 @@ module System.Logger.Message , builderSize , builderBytes , render - , renderDefault - , renderNetstr + , renderDefault_ + , renderNetstr_ ) where #if MIN_VERSION_base(4,9,0) @@ -169,10 +169,9 @@ val = bytes render :: ([Element] -> B.Builder) -> (Msg -> Msg) -> L.ByteString render f m = finish . f . elements . m $ empty --- | Simple 'Renderer' with '=' between field names and values and a custom --- separator. -renderDefault :: ByteString -> [Element] -> B.Builder -renderDefault s = encAll mempty +-- | See 'renderDefault'. +renderDefault_ :: ByteString -> [Element] -> B.Builder +renderDefault_ s = encAll mempty where encAll !acc [] = acc encAll !acc (b:[]) = acc <> encOne b @@ -184,10 +183,9 @@ renderDefault s = encAll mempty eq = B.char8 '=' sep = B.byteString s --- | 'Renderer' that uses --- encoding for log lines. -renderNetstr :: [Element] -> B.Builder -renderNetstr = encAll mempty +-- | See 'renderNetstr'. +renderNetstr_ :: [Element] -> B.Builder +renderNetstr_ = encAll mempty where encAll !acc [] = acc encAll !acc (b:bb) = encAll (acc <> encOne b) bb diff --git a/src/System/Logger/Settings.hs b/src/System/Logger/Settings.hs index 35532a1deb0a93c5504094942214b8fbdd8fa18e..ec89a5a6823a3e6abccd0a8f876068ece1777725 100644 --- a/src/System/Logger/Settings.hs +++ b/src/System/Logger/Settings.hs @@ -21,8 +21,10 @@ module System.Logger.Settings , delimiter , setDelimiter , setNetStrings - , setRendererNetstr , setRendererDefault + , setRendererNetstr + , renderDefault + , renderNetstr , logLevel , logLevelMap , logLevelOf @@ -91,16 +93,26 @@ setDelimiter x s = s { _delimiter = x } -- -- {#- DEPRECATED setNetStrings "Use setRendererNetstr or setRendererDefault instead" #-} setNetStrings :: Bool -> Settings -> Settings -setNetStrings True = setRenderer $ \_ _ _ -> renderNetstr -setNetStrings False = setRenderer $ \s _ _ -> renderDefault s +setNetStrings True = setRendererNetstr +setNetStrings False = setRendererDefault + +-- | Shortcut for calling 'setRenderer' with 'renderDefault'. +setRendererDefault :: Settings -> Settings +setRendererDefault = setRenderer renderDefault -- | Shortcut for calling 'setRenderer' with 'renderNetstr'. setRendererNetstr :: Settings -> Settings -setRendererNetstr = setRenderer $ \_ _ _ -> renderNetstr +setRendererNetstr = setRenderer renderNetstr --- | Shortcut for calling 'setRenderer' with 'renderDefault'. -setRendererDefault :: Settings -> Settings -setRendererDefault = setRenderer $ \s _ _ -> renderDefault s +-- | Simple 'Renderer' with '=' between field names and values and a custom +-- separator. +renderDefault :: Renderer +renderDefault s _ _ = renderDefault_ s + +-- | 'Renderer' that uses +-- encoding for log lines. +renderNetstr :: Renderer +renderNetstr _ _ _ = renderNetstr_ logLevel :: Settings -> Level logLevel = _logLevel @@ -202,4 +214,4 @@ defSettings = Settings defaultBufSize Nothing id - (\s _ _ -> renderDefault s) + renderDefault