A Python logging library
Project description
log11
A modern, flexible Python logging library designed for simplicity and power.
Features
- Modern API: Built on top of the powerful loguru library
- Flexible Configuration: Multiple output formats (text/JSON)
- Rich Formatting: Colored output, custom fields, and structured logging
- Project Root Detection: Automatic project root discovery
- Python 3.10+: Modern Python features and type hints
- Zero Configuration: Sensible defaults out of the box
Installation
pip install log11
Quick Start
Basic Usage
from log11 import get_logger
# Get the default logger
logger = get_logger()
# Log messages
logger.info("Application started")
logger.warning("This is a warning")
logger.error("Something went wrong")
Advanced Usage
from log11 import Log, TextFormatConfig
# Setup custom logging configuration
Log.clear()
Log.add_output(
name="console",
sink="logs/app.log",
data_format="json",
level="INFO",
text_format_config=TextFormatConfig(
date=True,
time=True,
level=True,
location=False,
function=True,
message=True,
extras=True
)
)
# Apply configuration and get logger
logger = Log.apply()
# Log structured data
logger.info("User action", user_id=123, action="login")
Custom Formatting
from log11 import Log, TextFormatConfig, LogColor
# Setup with custom formatting
Log.clear()
Log.add_output(
name="console",
sink="stdout",
data_format="text",
colored=True,
level="DEBUG",
text_format_config=TextFormatConfig(
date=False,
time=True,
level=True,
location=True,
function=False,
message=True,
extras=True
)
)
logger = Log.apply()
logger.debug("Debug message with details", debug_info="extra data")
API Reference
Log
The main logging configuration manager.
Log.clear(): Clear all output configurationsLog.default_setup(): Setup default console loggingLog.apply(): Apply all configured outputs and return loggerLog.add_output(name, sink, data_format, colored, level, text_format_config, replace, auto_apply, **kwargs): Add a new output configurationLog.add_level(name, number, color): Add a custom logging levelLog.set_global_level(level): Set logging level for all outputs
get_logger
get_logger(): Get a configured logger instance (sets up defaults if needed)
Configuration Classes
TextFormatConfig(date, time, level, location, function, message, extras): Configure text output formatTextFormat(config): Text formatter implementationLogColor: Color constants for stylingLogStyle: Text styling helpersLogField: Field rendering utilities
Development
Prerequisites
Install uv for modern Python dependency management:
# On Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Installation for Development
# Clone the repository
git clone https://github.com/vincentdeneuf/log11.git
cd log11
# Install dependencies and create virtual environment
uv sync
# Activate the virtual environment (optional, uv commands work without it)
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode
uv pip install -e .
Running Tests
# Run tests with uv
uv run pytest
# Run tests with coverage
uv run pytest --cov=log11 --cov-report=html
Building the Package
# Build the package
uv build
# Build for distribution
uv build --release
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Changelog
0.1.0
- Initial release
- Built on loguru for powerful logging capabilities
- Flexible output configuration (text/JSON formats)
- Rich formatting with colors and custom fields
- Project root detection
- Python 3.10+ support with modern type hints
- Zero-configuration default setup
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 log11-0.1.0.tar.gz.
File metadata
- Download URL: log11-0.1.0.tar.gz
- Upload date:
- Size: 45.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb8c7f4e8dc48fcfdfdf7f33691419377dba8103db8a3277651d36b7327ddeb8
|
|
| MD5 |
037b68427316050eaaa579ba4847a676
|
|
| BLAKE2b-256 |
34f1685d6baa48ae15d97d9b884800f0b2c77d23b9f3aea84d0f0eb3f0774048
|
File details
Details for the file log11-0.1.0-py3-none-any.whl.
File metadata
- Download URL: log11-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ac1c72746117d3fb4599eb349ef3d3fc23c5254b15acee7e4d4c254c53b2b3
|
|
| MD5 |
5a5377c5f25c3ce0050b7b0d0f915c6c
|
|
| BLAKE2b-256 |
4764e4bdd8d004a7544a7a34b40043b58ad24ad358de7a37ce0fbb15ff1d5082
|