Metadata-Version: 2.1
Name: pylogx
Version: 0.4.4
Summary: python logging extensions supporting additional levels, colorization and more
Author-email: Claudio Klingler <ck@realtime-projects.com>
Project-URL: Homepage, https://github.com/realtimeprojects/pylogx
Project-URL: Bug Tracker, https://github.com/realtimeprojects/pylogx/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE

# pylogx
> python logging extensions supporting additional levels, colorization, indentation and more

## Features

-   Additional log levels (HINT, NOTE, TRACE) for more granularity
-   Colorize log messages based on the log level
-   Indent log messages
-   Log relative time stamps

## Documentation

-   Check the [pylox documentation](https://github.com/realtimeprojects/pylogx/blob/main/doc/pylogx.md) for more details.

## Quickstart

### Colorize your log messages

        import time
        import pylogx
        from pylogx import log

        pylogx.enable_colors(level=pylogx.Level.NOTE, ups=[pylogx.Level.NOTE])

        log.trace("Have fun with colorized log messages")
        log.note("This message disappears with the next log message")
        time.sleep(5)
        log.note("Another message disappearing soon..")
        time.sleep(5)
        log.success("Last message is gone")

### Indent your log messages

        import logging
        from pylogx import log, IndentFilter

        formatter = logging.Formatter(fmt="%(asctime)s %(indent)s%(message)s")
        sh = logging.StreamHandler()
        sh.setFormatter(formatter)
        log.addHandler(sh)

        iflt = IndentFilter(indent=" => ")
        log.addFilter(iflt)

        log.info("base level")

        iflt.inc()
        log.info("sub level")

        iflt.inc()
        log.info("sub sub level")

        iflt.dec()
        log.info("sub level")

### Print log messages with relative time stamp

        import time
        import logging
        from pylogx import log, PrettyDelta, Level

        pd = PrettyDelta()
        log.addFilter(pd)
        prd = PrettyDelta(name="prettyRelativeDelta", fmt="+%M:%S.%f", relative=True)
        log.addFilter(prd)
        formatter = logging.Formatter(fmt="%(prettyDelta)s [%(prettyRelativeDelta)s] %(message)s")
        sh = logging.StreamHandler()
        sh.setFormatter(formatter)
        log.addHandler(sh)
        log.setLevel(Level.INFO)

        log.warning("enjoy relative timestamps")
        time.sleep(1)
        log.info("enjoy relative timestamps")
        time.sleep(2)
        log.info("enjoy relative timestamps")
