Logging module for OCaml.
Quick start :
open Easy_logging
logger = Logging.make_logger "my_logger" Debug [Cli Debug];;
logger#info "log_message";;
See documentation at https://sapristi.github.io/easy_logging/easy_logging
- fix license in source code files (Mozilla Public License Version 2.0)
- General cleanup
- Some refactoring (removed MakeLogging functor)
- Relax
ppx_deriving
dependency requirements. - Switch to Mozilla Public License 2.0
- Minimal version of OCaml is not 4.07
- added tree_to_yojson function
- added level_of_string to Logging
- logger level is no more option type (NoLevel takes the role of None)
- fix json formatter
- Added more options to file handlers (automatic timestamps and/or versioning of file names)
- Added CliErr handler to output to stderr
- modified handlers type so that fully custom handlers can be instantiated
- cleaned module API
- log items contains a timestamp
- Added RotatingFile handlers : log file rotation based on file size
- Renamed the Default_handlers module to handlers
- tag type in Handlers is now string (was unit)
- added the possibility to add filters to handlers
- added tag_generator feature to loggers, to automatically add tags to all messages passed to a logger
- log_level type is direcly accessible from Easy_logging and Easy_logging_yojson modules
- more file_handler options (timestamp, versioning)
- printf style logging is now the default
- simplifed configuration in case of multiple loggers (and closer to the python module) :
the loggers form a tree (based on their name, dots indicating descendence)
- log items are passed to the handlers of a logger’s ancestors (so that few handlers need initialisation) (possible to override)
- loggers inherit the level of their ancestor if not set explicitely
- an additional package easy_logging_yojson provides initialisation of loggers from the json format (with ppx_deriving_yojson), so that configuration can be fully done outside the code.