Skip to main content

LoggerPlusPlus is an enhanced Python logging module with colorized output, customizable themes, improved multi-logger management, and optimized display for better readability. Built on top of Loguru, it adds a set of features that make logging faster and more convenient to use.

Project description

LoggerPlusPlus

LoggerPlusPlus is an enhanced Python logging module built on top of Loguru.
It provides the same simple and powerful API, while adding extra features for better readability, productivity, and multi-logger management.


✨ Features

  • Dynamic identifier alignment:
    Use {identifier:<auto} in your log format and all identifiers will be aligned automatically, with width adapting to the longest seen identifier.

  • Truncation support:
    Define a maximum width with [...] and choose how truncation should occur:

{identifier:<auto[18~middle]} → if the identifier is longer than 18 chars, it will be truncated with in the middle.

  • LoggerClass: Any class can easily get a bound logger with its class name as identifier:

    from loggerPlusPlus import LoggerClass
    
    class Worker(LoggerClass):
        def run(self):
            self.logger.info("Working...")
    
  • Extra decorators:

    • @catch → same as loguru.logger.catch, with optional identifier or a pre-bound logger.
    • opt() → same as loguru.logger.opt, extended with identifier or logger binding.
    • @log_timing → log execution time of functions (enter/exit messages configurable).
    • @log_io → log function parameters and/or return values.
  • Compatible with Loguru: All of Loguru’s core features (sinks, levels, filters, backtraces, etc.) remain available.


🚀 Installation

pip install loggerplusplus

🛠 Usage

Basic configuration

from loggerplusplus import add, remove, logger

remove()
add(
    sink=sys.stderr,
    level="DEBUG",
    format=(
        "<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
        "<level>{level.name:<8}</level> | "
        "[<blue>{identifier:<auto[18~middle]}</blue>] | "
        "<level>{message}</level>"
    ),
)

logger.bind(identifier="MAIN").info("Hello from main")

Output:

2025-09-25 14:03:12.345 | INFO     | [MAIN] | Hello from main

LoggerClass

from loggerplusplus import LoggerClass

class Service(LoggerClass):
    def run(self):
        self.logger.info("Service is running")

svc = Service()
svc.run()

Decorators

Catch exceptions

from loggerplusplus import catch

@catch(identifier="WORKER", level="ERROR")
def risky():
    raise RuntimeError("Boom!")

risky()

Measure execution time

from loggerplusplus import log_timing
import time

@log_timing(identifier="TASK", enter_message="Starting {func}...", exit_message="Finished {func} in {duration:.2f}s")
def slow():
    time.sleep(0.5)

slow()

Log function arguments / return values

from loggerplusplus import log_io

@log_io(identifier="CALC", log_args=True, log_return=True)
def add(a, b):
    return a + b

add(3, 4)

📜 License

loggerplusplus is licensed under the GPLv3. It builds on top of Loguru (MIT license).

Author

Project created and maintained by Florian BARRE.
For any questions or contributions, feel free to contact me.
My Website | My LinkedIn | My GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loggerplusplus-1.0.3.tar.gz (55.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loggerplusplus-1.0.3-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

Details for the file loggerplusplus-1.0.3.tar.gz.

File metadata

  • Download URL: loggerplusplus-1.0.3.tar.gz
  • Upload date:
  • Size: 55.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for loggerplusplus-1.0.3.tar.gz
Algorithm Hash digest
SHA256 a9652bd6b52c2ca448535209b2256118b03905edc60db931a6ece6899a270eb6
MD5 95ec1d752489924cb48e0e58ea164c5d
BLAKE2b-256 17c73af269ffe07e78ca286dca1aadd144568d610c47348cc325a82cbc0fde5b

See more details on using hashes here.

File details

Details for the file loggerplusplus-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: loggerplusplus-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 48.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for loggerplusplus-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 596f2d6841ae798dedf503ba11aa4add90a044c41db64d5f0f24ecc19b285727
MD5 9cf7ff267926a6303f565063ee0cd2c3
BLAKE2b-256 32dfa4df30b1d6e17efe4f7e570930dbb241da334fc53cc9bf6c524621f5a30a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page