Skip to main content

A custom logger with color support and additional features.

Project description

PyPI version Python Development Status Maintenance PyPI License


custom-python-logger

A powerful and flexible Python logger with colored output, custom log levels, and advanced configuration options.
Easily integrate structured, readable, and context-rich logging into your Python projects for better debugging and monitoring.


🚀 Features

  • Colored Output: Beautiful, readable logs in your terminal using colorlog.
  • Custom Log Levels: Includes STEP (for process steps) and EXCEPTION (for exception tracking) in addition to standard levels.
  • Flexible Output: Log to console, file, or both. Supports custom log file paths and automatic log directory creation.
  • Contextual Logging: Add extra fields (like user, environment, etc.) to every log message.
  • UTC Support: Optionally log timestamps in UTC for consistency across environments.
  • Pretty Formatting: Built-in helpers for pretty-printing JSON and YAML data in logs.
  • Easy Integration: Simple API for getting a ready-to-use logger anywhere in your codebase.

📦 Installation

pip install custom-python-logger

🔧 Usage

Here's a quick example of how to use custom-python-logger in your project:

import logging
from custom_python_logger import build_logger, CustomLoggerAdapter

logger: CustomLoggerAdapter = build_logger(
    project_name='Logger Project Test',
    log_level=logging.DEBUG,
    log_file=True,
)

logger.debug("This is a debug message.")
logger.info("This is an info message.")
logger.step("This is a step message.")
logger.warning("This is a warning message.")

try:
    _ = 1 / 0
except ZeroDivisionError:
    logger.exception("This is an exception message.")

logger.critical("This is a critical message.")

Advanced Usage

  • Log to a file:

    from custom_python_logger import build_logger
    
    logger = build_logger(project_name='MyApp', log_file=True)
    
  • Use UTC timestamps:

    from custom_python_logger import build_logger
    
    logger = build_logger(project_name='MyApp', log_file=True, utc=True)
    
  • Add extra context:

    from custom_python_logger import build_logger
    
    logger = build_logger(project_name='MyApp', log_file=True, utc=True, extra={'user': 'alice'})
    
  • Pretty-print JSON or YAML:

    from custom_python_logger import build_logger, json_pretty_format, yaml_pretty_format
    
    logger = build_logger(project_name='MyApp', utc=True, log_file=True)
    
    logger.info(json_pretty_format({'foo': 'bar'}))
    logger.info(yaml_pretty_format({'foo': 'bar'}))
    
  • use an existing logger (CustomLoggerAdapter) and set a custom name:

    from custom_python_logger import get_logger
    
    logger = get_logger('some-name')
    

logger.debug("This is a debug message.") logger.info("This is an info message.") logger.step("This is a step message.")


---

## 🤝 Contributing
If you have a helpful tool, pattern, or improvement to suggest:
Fork the repo <br>
Create a new branch <br>
Submit a pull request <br>
I welcome additions that promote clean, productive, and maintainable development. <br>

---

## 📄 License
MIT License — see [LICENSE](LICENSE) for details.

---

## 🙏 Thanks
Thanks for exploring this repository! <br>
Happy coding! <br>

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

custom_python_logger-3.0.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

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

custom_python_logger-3.0.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file custom_python_logger-3.0.1.tar.gz.

File metadata

  • Download URL: custom_python_logger-3.0.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for custom_python_logger-3.0.1.tar.gz
Algorithm Hash digest
SHA256 77f28f3e2571e55c2e1e67146d4f4bb627af89bcae40b841f4d29bdfa6da301b
MD5 945e1b6f0af19de6af230f324430bb84
BLAKE2b-256 a89a56d92c129af9a31d37af4314b365f2a03ea0faf4d5ce0561d82c9f362c29

See more details on using hashes here.

File details

Details for the file custom_python_logger-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for custom_python_logger-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ccbd417b2c295efd87440016613b0c5045ece16763a0f148a486d951ecf8ec3
MD5 89756a10a362be0bfe8bf44b9b20e0ec
BLAKE2b-256 5ef3b4a3cfe482a12d287c0f60799fe93222c3baf57c8b82020f154c36b6aaf6

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