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.1.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.1-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: loggerplusplus-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d1ead6425d795aa0ea1df34bc9e936875bdb260c012c88fcb6613ac5d2ebe394
MD5 c32c9f68c04b651d9d371d665577d224
BLAKE2b-256 23a05e55fbfadd8c094ad122a70ab760168a2135f0585deaebcb881d60f43008

See more details on using hashes here.

File details

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

File metadata

  • Download URL: loggerplusplus-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fbaadf05d4863310be7d0d99084e25faa70776a6b4da058057612f39d6081143
MD5 105dbb6d92df70f908ca257694be686d
BLAKE2b-256 d3df900d82373aa5e0ddb09350982498442a41fffe673a588006779a395df692

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