PyLogFormats#

PyPI Status Python Version License

Read the documentation at https://pylogformats.readthedocs.io/ Tests Codecov

pre-commit Black

Features#

  • Json Formatters

    • AdvJsonFormat

    {
      "logger": "root",
      "timestamp": "2021-02-04T23:02:52.522958",
      "rtimestamp": "2021-02-04T23:02:37.518800",
      "message": "TEST",
      "level": "ERROR",
      "levelno": 40,
      "location": {
        "pathname": "<FULL_PATH>\\test_logger.py",
        "module": "test_logger",
        "filename": "test_logger.py",
        "function": "<module>",
        "line": 16
      },
      "process": {
        "number": 2300,
        "name": "MainProcess"
      },
      "thread": {
        "number": 12516,
        "name": "MainThread"
      },
      "v": 1
    }
    
    • BunyanFormat

    {
      "time": "2021-02-04T23:01:00.781Z",
      "name": "root",
      "pid": 15504,
      "level": 40,
      "msg": "TEST",
      "hostname": "HerculesPC",
      "v": 0
    }
    
    • JsonFormat

    {
      "logger": "root",
      "timestamp": "2021-02-04T23:01:46.435011",
      "message": "TEST",
      "level": "ERROR",
      "levelno": 40,
      "function": "<module>",
      "process": {
        "number": 13316,
        "name": "MainProcess"
      },
      "thread": {
        "number": 10704,
        "name": "MainThread"
      },
      "v": 1
    }
    
  • Text Formatters

    • SimpleTextFormat

    [DEBUG] [2021-02-04 23:01:46] A Test Debug Log
    
    • CompactTextFormat

    [D 2021-02-04 23:01:46 l:root f:<module> ln:5] A Test Log [includesExtras:Yes]
    

Installation#

You can install PyLogFormats via pip from PyPI:

$ pip install pylogformats

Usage#

For an explanation of this, and more usage instructions please visit the documentation

import logging
import sys

from pylogformats import JsonFormat

# Create the logging handler
handler = logging.StreamHandler(sys.stdout)

# Add the formatter class to the handler we just created.
handler.setFormatter(JsonFormat())

# Use basicConfig to setup the loggers.
logging.basicConfig(handlers=[handler], level=logging.DEBUG)

# Use the normal logging methods to see formatted logs in your terminal
logging.critical("Critical Log")
logging.error("Error Log")
logging.warning("Warning Log")
logging.info("Info Log")
logging.debug("Debug Log")

Contributing#

Contributions are very welcome. To learn more, see the Contributor Guide.

License#

Distributed under the terms of the MIT license, PyLogFormats is free and open source software.

Issues#

If you encounter any problems, please file an issue along with a detailed description.

Credits#

This project was generated from @cjolowicz’s Hypermodern Python Cookiecutter template.