-- | 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): -- -- > <log> ::= <timestamp> " " <path> " " <level> " " <message> -- > <path> ::= <path1> " " <path> | <path1> | "" -- > <path1> ::= "/" <segment> | <key> "=" <value> -- > <segment> ::= zero or more characters until " " -- > <key> ::= zero or more characters until (" " | "=") -- > <value> ::= zero or more characters until " " -- > <message> ::= zero or more characters until LF ("\n") -- > <level> ::= "DEBUG" | "INFO" | "NOTICE" | "WARNING" | "ERROR" | "CRITICAL" | "ALERT" | "EMERGENCY" -- > <timestamp> ::= <year> "-" <month> "-" <day> "T" <hour> ":" <minute> ":" <second> "." <nanosecond> "Z" -- > <year> ::= <digit> <digit> <digit> <digit> -- > <month> ::= <digit> <digit> -- > <day> ::= <digit> <digit> -- > <hour> ::= <digit> <digit> -- > <minute> ::= <digit> <digit> -- > <second> ::= <digit> <digit> -- > <nanosecond> ::= <digit> <digit> <digit> <digit> <digit> <digit> <digit> <digit> <digit> -- > <digit> ::= "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.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) -- * Parsing , P.parse -- * Rendering , R.render , R.renderColor ) where import qualified Df1.Parse as P import qualified Df1.Render as R import qualified Df1.Types as T