diff --git a/src/System/Logger/Message.hs b/src/System/Logger/Message.hs index e28d44244d8ae27003532713b30f8003b25f4ee2..38b1761366e7a3f0f9b2956e086880132f9c281c 100644 --- a/src/System/Logger/Message.hs +++ b/src/System/Logger/Message.hs @@ -169,6 +169,8 @@ 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 where @@ -182,6 +184,8 @@ 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 where diff --git a/src/System/Logger/Settings.hs b/src/System/Logger/Settings.hs index 529c2dde0a637a5149f4539192a21084685e3f55..35532a1deb0a93c5504094942214b8fbdd8fa18e 100644 --- a/src/System/Logger/Settings.hs +++ b/src/System/Logger/Settings.hs @@ -94,11 +94,11 @@ setNetStrings :: Bool -> Settings -> Settings setNetStrings True = setRenderer $ \_ _ _ -> renderNetstr setNetStrings False = setRenderer $ \s _ _ -> renderDefault s --- | Use encoding --- for log lines. +-- | Shortcut for calling 'setRenderer' with 'renderNetstr'. setRendererNetstr :: Settings -> Settings setRendererNetstr = setRenderer $ \_ _ _ -> renderNetstr +-- | Shortcut for calling 'setRenderer' with 'renderDefault'. setRendererDefault :: Settings -> Settings setRendererDefault = setRenderer $ \s _ _ -> renderDefault s @@ -138,6 +138,9 @@ nameMsg = _nameMsg renderer :: Settings -> Renderer renderer = _renderer +-- | Set a custom renderer. See 'setRendererDefault', 'setRendererNetstr' for +-- two common special cases. Look at the code of 'renderDefault', +-- 'renderNetstr' for examples how to write custom renderers. setRenderer :: Renderer -> Settings -> Settings setRenderer f s = s { _renderer = f } @@ -167,6 +170,10 @@ instance IsString DateFormat where iso8601UTC :: DateFormat iso8601UTC = "%Y-%0m-%0dT%0H:%0M:%0SZ" +-- | Take a custom separator, date format, log level of the event, and render +-- a list of log fields or messages into a builder. +-- +-- See also: 'renderDefault', 'renderNetstr'. type Renderer = ByteString -> DateFormat -> Level -> [Element] -> B.Builder -- | Default settings: