lumberjack

Trek through your code forest and make logs

https://github.com/GaloisInc/lumberjack

Version on this page:1.0.3.0@rev:1
LTS Haskell 23.1:1.0.3.0@rev:2
Stackage Nightly 2024-12-23:1.0.3.0@rev:2
Latest on Hackage:1.0.3.0@rev:2

See all snapshots lumberjack appears in

ISC licensed by Kevin Quick
Maintained by [email protected]
This version can be pinned in stack with:lumberjack-1.0.3.0@sha256:a329f109aaf5931025a926ecb7964185444dcfc71847cf3bae9ff52511af46b6,3252

Module documentation for 1.0.3.0

This is a logging facility. Yes, there are many, and this is the one with a beard, wearing flannel and boots, that gets the job done. It's not the fanciest, it doesn't have a cargo-van full of features. This logger is designed to be straightforward to use, provide a good set of standard features, and be useable across a broad set of code.

  • Logging itself is a monadic activity. This activity is most often performed in a monad stack with a MonadIO context to allow writing to files.

  • The specific logging action implementations are managed separately from the actions of logging messages in the target code. This allows logging to be configurable and the manner of logging to be specified at startup time without requiring changes in the code from which log messages are being generated.

  • The logging implementation code can use contravariant functors to adjust existing logging.

  • Main code will typically retrieve the logging actions from a Reader context in your monad stack. That said, Log actions are not tied to an enclosing Monad. There are helpers to support a Monad which can store Log actions, but Log actions can also be explicitly passed and used.

  • The prettyprinter package is used for formatting.

Changes

Revision history for lumberjack

1.0.3.0 – 2023-07-28

  • Update for GHC 9.6 (base-4.18.*).
  • Remove lumberjack’s dependency on mtl, which went unused.

1.0.2.0 – 2023-01-03

  • Update for GHC 9.4 (base-4.17-*).

1.0.1.0 – 2022-03-09

  • Update for GHC 9.2 (base-4.16-*) [thanks to Ryan Scott].

1.0.0.1 – 2021-06-27

  • Fix issue #2: use eta expansion example to avoid loss of deep skolemisation support under the simplified subsumption rules in GHC 9 [thanks to Felix Yan for the report].

1.0.0.0 – 2020-12-20

  • No longer Beta, so major version is now 1.0, although functionality has not changed other than the addition of the |# operator.

  • Added the |# convenience infix operator.

0.1.0.3 – 2020-11-30

  • Bump prettyprinter upper-bound to allow versions in the 1.7.x range.

0.1.0.2 – 2020-05-21

  • Enable support for GHC 8.4.
  • Add missing dependency for building the example.

0.1.0.1 – 2020-02-14

  • Updates to documentation and internal code formatting. No functionality updates.

0.1.0.0 – 2020-02-13

  • Initial Lumberjack logger implementation, based on internal usage.