Logging in Haskell
A final thing we'll consider is more related to I/O than streaming: logging in Haskell applications. Logging is important in any sufficiently important application.
In a small scale, a list- or DList-based WriterT monad is often all that is needed: it's simple and potentially pure (if the underlying monad is pure). However, on a bigger scale it doesn't make sense to store messages in an internal pure data structure. Instead, it's most efficient to write them to disk (or over a network) immediately (likely still using a buffer, though).
Furthermore, it would be nice if the logging functionality could be decoupled from other application code, even reused between different applications.
A popular solution which provides just that ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access