From 0abfb653c80125284dfeb51aae86e4f92917837f Mon Sep 17 00:00:00 2001 From: Matheus Frata Date: Sun, 21 Mar 2021 17:02:44 -0300 Subject: [PATCH] Update readme --- README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9d1d704..29f6f0f 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,99 @@ # lodge -A simple log lib configurable by env vars +A structured logging package in Python simple to use. +## Features + +* Easy to use +* Env var configurations +* Structured production log ready! +* Options to customize fields +* Set log level by module +* Based on stdlib + +## Install + +Add to your setup as: +```python + ... + " lodge @ https://github.com/NeowayLabs/lodge.git@#egg=lodge", + ... +``` +or install with pip +``` +pip install git+https://github.com/NeowayLabs/lodge.git +``` + +## Getting Started + +```python +>>> from lodge import logger + +>>> logger.info("Is that simple?") +{"message": "Is that simple?", "timestamp": "2021-03-21 14:26:54,838", "level": "INFO"} +``` + +### Global level with env var config + +```python +$ export LOG_LEVEL=ERROR + +>>> from lodge import logger + +>>> logger.info("This will not appear") +>>> logger.error("Oh no") +{"message": "Oh no", "timestamp": "2021-03-21 14:26:54,839", "level": "ERROR"} +``` + +### Module level with env var config + +```python +$ export PACKAGE_MODULE1_LOG_LEVEL=ERROR +$ export PACKAGE_MODULE2_LOG_LEVEL=INFO + +# package/module1.py +>>> from lodge import logger + +>>> logger.info("Module 1 info") +>>> logger.error("Module 1 error") +{"message": "Module 1 error", "timestamp": "2021-03-21 14:26:54,839", "level": "ERROR"} + +# package/module2.py +>>> from lodge import logger + +>>> logger.info("Module 2 info") +{"message": "Module 2 info", "timestamp": "2021-03-21 14:26:54,839", "level": "INFO"} +>>> logger.error("Module 2 error") +{"message": "Module 2 error", "timestamp": "2021-03-21 14:26:54,839", "level": "ERROR"} +``` + +### Change format to easier read on development ```python -from lodge import log +$ export LOG_ENV=DEV + +# package/module1.py +>>> from lodge import logger + +>>> logger.info("a message") +2021-03-21 14:34:47,273 | INFO | package.module1 | a message +``` + +### Add extra fields +```python +$ export LOG_EXTRA_FIELDS='{"fausto":"olokinho"}' + +>>> from lodge import logger + +>>> logger.info("o loko") +{"message": "o loko", "timestamp": "2021-03-21 14:45:51,431", "level": "INFO", "fausto": "olokinho"} +``` + +### Overwrite base fields +```python +$ export LOG_BASE_FIELDS='{"message":"%(message)s"}' + +>>> from lodge import logger -log.info("Something important") +>>> logger.info("simple message") +{"message": "simple message"} ```