-- | This module exports tools for typing, parsing, and rendering logs in the -- /df1/ hierarchical structured logging format. -- -- Consider this a preview release: The API is likely to stay stable, but -- extensive testing, formalization and tooling is due. -- -- Draft [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) -- specification of the /df1/ log line format (TO BE VERIFIED): -- -- > ::= " " " " " " -- > ::= " " | | "" -- > ::= "/" | "=" -- > ::= zero or more characters until " " -- > ::= zero or more characters until (" " | "=") -- > ::= zero or more characters until " " -- > ::= zero or more characters until LF ("\n") -- > ::= "DEBUG" | "INFO" | "NOTICE" | "WARNING" | "ERROR" | "CRITICAL" | "ALERT" | "EMERGENCY" -- > ::= "-" "-" "T" ":" ":" "." "Z" -- > ::= -- > ::= -- > ::= -- > ::= -- > ::= -- > ::= -- > ::= -- > ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" module Df1 ( -- * Types T.Log(Log, log_time, log_level, log_path, log_message) , T.Level(Debug, Info, Notice, Warning, Error, Critical, Alert, Emergency) , T.Path(Attr, Push), T.ToPath(path) , T.Segment, T.unSegment, T.ToSegment(segment) , T.Key, T.unKey, T.ToKey(key) , T.Value, T.unValue, T.ToValue(value) , T.Message, T.unMessage, T.ToMessage(message) ) where import Df1.Render () -- To make sure module instances are available here too. import Df1.Parse () -- To make sure module instances are available here too. import qualified Df1.Types as T