df1

Type, render and parse the df1 hierarchical structured log format

https://github.com/k0001/di

Version on this page:0.3
LTS Haskell 22.14:0.4.2
Stackage Nightly 2024-03-28:0.4.2
Latest on Hackage:0.4.2

See all snapshots df1 appears in

BSD-3-Clause licensed by Renzo Carbonara
Maintained by renλren.zone
This version can be pinned in stack with:df1-0.3@sha256:31ef30f59e60d0f1b0c234d6cf558fe7c5b7ed862beb570b4b41c32b5d1b2db8,1109

Module documentation for 0.3

Used by 2 packages in nightly-2018-09-17(full list with versions):

df1

Hierarchical structured logging format. Easy for humans, fast for computers.

This library provides types, parsers and renderers for df1.

Consider this a preview release: The API is likely to stay stable, but extensive testing, formalization and tooling is due.

Build Status

See the BSD3 LICENSE file to learn about the legal terms and conditions for this library.

Changes

Version 0.3

  • The segment, key, value and message functions are now methods of the new ToSegment, ToKey, ToValue and ToMessage classes. Identity instances, as well as instances for String, lazy Text and strict Text, have been introduced for these classes.

Version 0.2

  • BREAKING CHANGE: Segment, Key, Value and Message don’t strip surrounding whitespace anymore. When rendering Segment, Key and Value, the whitespace will be percent-encoded. When rendering Message, the whitespace will be kept as is.

  • BREAKING CHANGE: Segment and Key now wrap lazy Text, rather than strict Text. This is to align their APIs with Value and Message, which already wrapped lazy Text so as to prevent logged Values and Messages from to use much memory. It’s unlikely that Segments and Keys are affected by this, since in practice they are almost always created statically. So, this change is mostly to make the API less surprising to users: Lazy Text is used throughout.

  • Added draft BNF specification.

Version 0.1.2

  • Fixed escaping of control characters in Message.

  • Percent-escape less punctuation characters when rendering Key, Segment and Value.

    TODO: write spec.

Version 0.1.1

  • Fixed compilation.

Version 0.1

  • Consider this a preview release: The API is likely to stay stable, but extensive testing, formalization and tooling is due.