A custom logger with color support and additional features.
Project description
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) andEXCEPTION(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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77f28f3e2571e55c2e1e67146d4f4bb627af89bcae40b841f4d29bdfa6da301b
|
|
| MD5 |
945e1b6f0af19de6af230f324430bb84
|
|
| BLAKE2b-256 |
a89a56d92c129af9a31d37af4314b365f2a03ea0faf4d5ce0561d82c9f362c29
|
File details
Details for the file custom_python_logger-3.0.1-py3-none-any.whl.
File metadata
- Download URL: custom_python_logger-3.0.1-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ccbd417b2c295efd87440016613b0c5045ece16763a0f148a486d951ecf8ec3
|
|
| MD5 |
89756a10a362be0bfe8bf44b9b20e0ec
|
|
| BLAKE2b-256 |
5ef3b4a3cfe482a12d287c0f60799fe93222c3baf57c8b82020f154c36b6aaf6
|