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.5.tar.gz (55.2 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.5-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: loggerplusplus-1.0.5.tar.gz
  • Upload date:
  • Size: 55.2 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.5.tar.gz
Algorithm Hash digest
SHA256 c28b1fea3fbe5e4b42b59efdfc7b02f2e3e45420ec002606f00ac78d28c45a0c
MD5 625d1d1840ba281f68cde83ba7c2065f
BLAKE2b-256 15b05323116eaf41e3dc59dcd2005c9cfd0094c0c72b3aeffa28eae3db6188df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: loggerplusplus-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 48.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 989a1f1d40d9e6bfe6a23776c2d526f574496eab269499287451e96a2104db34
MD5 da90b70a192695cc7129ca306bf86cdb
BLAKE2b-256 fcf1c0a4cf4dab51b56c2a96044c8aa29003982c72ef106fdb31605e0571488a

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