Make logging lazy in the string
Make the logging functions accept a Lazy String so we don't pay formatting costs when we don't need to
This commit is contained in:
parent
2c012c57db
commit
fb2f643efa
|
@ -250,7 +250,7 @@ Putting this in its own function makes dealing with the potential error returned
|
||||||
|
|
||||||
```idris
|
```idris
|
||||||
-- print to standard error
|
-- print to standard error
|
||||||
ePutStrLn : String -> IO ()
|
ePutStrLn : Lazy String -> IO ()
|
||||||
ePutStrLn str = do
|
ePutStrLn str = do
|
||||||
_ <- fPutStrLn stderr str
|
_ <- fPutStrLn stderr str
|
||||||
pure ()
|
pure ()
|
||||||
|
@ -274,7 +274,7 @@ This function uses the provided `String -> IO ()` to remove the `Writer` from th
|
||||||
-- Lowers logging into IO within the effect using the given IO function
|
-- Lowers logging into IO within the effect using the given IO function
|
||||||
handleLog :
|
handleLog :
|
||||||
Has (WriterL "log" String) fs => Has IO (fs - WriterL "log" String) =>
|
Has (WriterL "log" String) fs => Has IO (fs - WriterL "log" String) =>
|
||||||
(tell : String -> IO ()) -> Eff fs a -> Eff (fs - (WriterL "log" String)) a
|
(tell : Lazy String -> IO ()) -> Eff fs a -> Eff (fs - (WriterL "log" String)) a
|
||||||
handleLog tell x =
|
handleLog tell x =
|
||||||
handle
|
handle
|
||||||
(\msg, f =>
|
(\msg, f =>
|
||||||
|
|
|
@ -20,19 +20,19 @@ namespace Logging
|
||||||
-->
|
-->
|
||||||
```idris
|
```idris
|
||||||
export
|
export
|
||||||
info : Has (WriterL "log" String) fs => String -> Eff fs ()
|
info : Has (WriterL "log" String) fs => Lazy String -> Eff fs ()
|
||||||
info str =
|
info str =
|
||||||
let tag = show . bolden . show . colored Green $ "[INFO]"
|
let tag = show . bolden . show . colored Green $ "[INFO]"
|
||||||
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
||||||
|
|
||||||
export
|
export
|
||||||
debug : Has (WriterL "log" String) fs => String -> Eff fs ()
|
debug : Has (WriterL "log" String) fs => Lazy String -> Eff fs ()
|
||||||
debug str =
|
debug str =
|
||||||
let tag = show . bolden . show . colored BrightWhite $ "[DEBUG]"
|
let tag = show . bolden . show . colored BrightWhite $ "[DEBUG]"
|
||||||
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
||||||
|
|
||||||
export
|
export
|
||||||
warn : Has (WriterL "log" String) fs => String -> Eff fs ()
|
warn : Has (WriterL "log" String) fs => Lazy String -> Eff fs ()
|
||||||
warn str =
|
warn str =
|
||||||
let tag = show . bolden . show . colored Yellow $ "[WARN]"
|
let tag = show . bolden . show . colored Yellow $ "[WARN]"
|
||||||
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
in tellAt "log" (tag ++ ": " ++ str ++ "\n")
|
||||||
|
|
Loading…
Reference in a new issue