# ⚡ Storm Logger
[](https://badge.fury.io/py/storm-logger)
[](https://pypi.org/project/storm-logger/)
[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[](https://pepy.tech/project/storm-logger)
[](https://github.com/psf/black)
**Enterprise-grade Python logging with business intelligence, beautiful console output, and zero-configuration framework integration.**
⚡ Storm Logger - Log the Storm - Weather your Code ⚡
---
## 🚀 Why Storm Logger?
Storm Logger transforms mundane application logging into a powerful business intelligence tool while making your console output beautiful and insightful.
### ✨ Key Benefits
- **🎨 Beautiful Console Output** - Rich formatting with themes, colors, tables, and progress bars
- **📊 Business Intelligence** - Built-in metrics, KPIs, and performance tracking
- **🔧 Zero Configuration** - Works instantly with sensible defaults
- **🐍 Django Integration** - First-class Django support with one-line setup
- **🔒 Security First** - Automatic PII detection and sanitization
- **⚡ High Performance** - Minimal overhead, production-ready
- **🎯 Developer Friendly** - Intuitive API that feels like Python's logging
### 🎭 See the Difference
```python
# Traditional logging - boring and hard to read
logger.info("User login successful user_id=12345 ip=192.168.1.1 time=1683ms")
# Storm Logger - beautiful and informative
logger.success("User login successful", user_id=12345, ip="192.168.1.1", response_time=1.683)
# Output: ✅ User login successful | user_id: 12345 | ip: 192.168.1.1 | response_time: 1.683s
# With automatic business intelligence
logger.business_metric("user_login", response_time=1.683, user_type="premium")
# Tracks metrics, generates insights, alerts on anomalies
```
---
## 🎯 Quick Start (30 seconds)
### Installation
```bash
# Basic installation
pip install storm-logger
# With Django integration
pip install storm-logger[django]
# All features (recommended)
pip install storm-logger[all]
```
### Basic Usage
```python
from storm_logger import get_logger
# Get a logger instance (works just like Python's logging)
logger = get_logger(__name__)
# Beautiful, intuitive logging
logger.info("Application started")
logger.success("Database connected", db_name="postgres", latency=0.023)
logger.warning("Cache miss", key="user_sessions", fallback="database")
logger.error("Payment failed", user_id=123, amount=99.99, error="Invalid card")
# Business intelligence built-in
logger.business_metric("checkout_attempt", amount=99.99, user_type="premium")
logger.track_performance("api_request", duration=0.145)
```
### Console Output Example
```
┌─────────────────────────────────────────────────────────────────┐
│ 2024-01-15 10:30:45 | INFO | app.main │
│ ✅ Application started │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 2024-01-15 10:30:46 | SUCCESS | app.database │
│ ✅ Database connected | db_name: postgres | latency: 0.023s │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 2024-01-15 10:30:47 | WARNING | app.cache │
│ ⚠️ Cache miss | key: user_sessions | fallback: database │
└─────────────────────────────────────────────────────────────────┘
```
---
## 🌐 Django Integration
Storm Logger provides deep Django integration with automatic configuration based on your environment.
### One-Line Setup
```python
# settings.py
from storm_logger.integrations.django_config import DjangoStormLoggerConfig
# Automatic configuration based on DEBUG setting
LOGGING = DjangoStormLoggerConfig.for_environment('auto').for_django_settings()
```
### Environment-Specific Configuration
```python
# settings/production.py
from storm_logger.integrations.django_config import DjangoStormLoggerConfig
LOGGING = DjangoStormLoggerConfig.for_production(
enable_error_emails=True,
enable_business_metrics=True,
track_performance_metrics=True,
).for_django_settings()
```
```python
# settings/development.py
from storm_logger.integrations.django_config import DjangoStormLoggerConfig
LOGGING = DjangoStormLoggerConfig.for_development(
enable_django_db_logging=True, # See SQL queries
enable_django_template_logging=True, # Template debugging
).for_django_settings()
```
### Using in Django Views
```python
from storm_logger import get_logger
logger = get_logger(__name__)
def checkout_view(request):
logger.info("Checkout started", user_id=request.user.id)
# Track business metrics
logger.business_metric("checkout_attempt", cart_value=request.cart.total)
# Performance tracking
with logger.track_performance("payment_processing"):
result = process_payment(request)
if result.success:
logger.success("Payment processed", amount=result.amount)
logger.business_metric("revenue", amount=result.amount)
else:
logger.error("Payment failed", error=result.error)
return redirect('order_complete' if result.success else 'checkout')
```
### Advanced Django Features
```python
# Per-app log level configuration
config = DjangoStormLoggerConfig(
app_log_levels={
'myapp': 'DEBUG',
'myapp.views': 'INFO',
'django.request': 'ERROR',
'django.db.backends': 'WARNING', # Less SQL noise
},
excluded_apps=['django.contrib.staticfiles'],
)
# Django-specific logging
from storm_logger.integrations.django import DjangoStormLogger
logger = DjangoStormLogger(__name__)
logger.log_django_request(request) # Automatic request context
logger.log_model_change(instance, action="created") # Model tracking
```
---
## 🐍 Standalone Python Scripts
Perfect for scripts, CLI tools, services, and batch jobs.
### Script Logging
```python
from storm_logger.integrations.standalone import setup_script_logging
# Quick setup for scripts
logger = setup_script_logging(
script_name="data_processor.py",
log_level="INFO",
log_to_file=True
)
logger.info("Starting data import")
logger.track_performance("csv_processing", file_size="125MB")
logger.success("Import completed", records_processed=50000)
```
### CLI Applications
```python
import argparse
from storm_logger.integrations.standalone import setup_cli_logging
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--verbose', action='count', default=0)
parser.add_argument('-q', '--quiet', action='store_true')
args = parser.parse_args()
# Automatic verbosity handling
logger = setup_cli_logging(
app_name="myapp",
verbosity=args.verbose, # -v, -vv, -vvv
quiet=args.quiet
)
logger.info("CLI application started")
```
### Progress Tracking
```python
from storm_logger.integrations.standalone import ScriptProgressLogger
# Beautiful progress tracking for batch jobs
progress = ScriptProgressLogger("data_migration")
progress.start("Migrating user data")
users = get_all_users()
for i, user in enumerate(users):
progress.update(i + 1, len(users), f"Migrating {user.username}")
migrate_user(user)
progress.complete(f"Successfully migrated {len(users)} users")
```
---
## 🎨 Key Features
### Beautiful Console Output
Choose from multiple themes to match your preference:
```python
from storm_logger import StormLoggerConfig
# Available themes: storm, professional, midnight, minimal
config = StormLoggerConfig(storm_theme="midnight")
logger = get_logger(__name__, config)
```
### Business Intelligence
Track KPIs and business metrics automatically:
```python
# Track business events
logger.business_metric("user_signup", plan="premium", source="google")
logger.business_metric("api_usage", endpoint="/api/v1/users", response_time=0.123)
# Track performance
with logger.track_performance("database_query"):
results = db.query("SELECT * FROM users")
# Get insights
insights = logger.get_business_insights()
# Returns: {"avg_response_time": 0.145, "total_requests": 1523, ...}
```
### Security & Compliance
Automatic PII detection and sanitization:
```python
# Automatically sanitizes sensitive data
logger.info("Processing payment", credit_card="4111-1111-1111-1111")
# Output: Processing payment | credit_card: ****-****-****-1111
# Configure sanitization levels
config = StormLoggerConfig(
enable_sanitization=True,
sanitization_level="strict", # basic, medium, strict
detect_pii=True
)
```
### Rich Formatting
Tables, panels, progress bars, and more:
```python
# Tables
logger.print_table(
title="API Performance",
data={
"Endpoint": ["/users", "/products", "/orders"],
"Avg Response": ["45ms", "120ms", "200ms"],
"Success Rate": ["99.9%", "99.5%", "98.2%"]
}
)
# Progress bars
with logger.progress_bar(total=1000, description="Processing") as progress:
for item in items:
process(item)
progress.advance(1)
# Panels
logger.print_panel(
"System Status: All services operational",
title="Health Check",
style="green"
)
```
---
## ⚙️ Configuration
### Environment Variables
```bash
# Basic configuration
export STORM_LOGGER_LEVEL=INFO
export STORM_LOGGER_FORMAT=json
export STORM_CONSOLE_THEME=midnight
# Features
export STORM_ENABLE_METRICS=true
export STORM_ENABLE_SANITIZATION=true
export STORM_SANITIZATION_LEVEL=medium
# Performance
export STORM_BUFFER_SIZE=10000
export STORM_FLUSH_INTERVAL=60
```
### Programmatic Configuration
```python
from storm_logger import StormLoggerConfig, LogLevel
config = StormLoggerConfig(
# Logging behavior
log_level=LogLevel.INFO,
log_directory="/var/log/myapp",
enable_console=True,
console_colors=True,
# Features
enable_business_metrics=True,
track_performance_metrics=True,
enable_sanitization=True,
# Formatting
storm_theme="professional",
timestamp_format="%Y-%m-%d %H:%M:%S",
# Performance
max_file_size=10 * 1024 * 1024, # 10MB
backup_count=5,
compression=True,
)
logger = get_logger(__name__, config)
```
### Framework-Specific Configuration
```python
# Django
from storm_logger.integrations.django_config import DjangoStormLoggerConfig
config = DjangoStormLoggerConfig(
enable_django_request_logging=True,
enable_django_db_logging=False, # Disable in production
enable_error_emails=True,
track_user_actions=True,
)
# Flask
from storm_logger.integrations.flask import FlaskStormLogger
app = Flask(__name__)
FlaskStormLogger(app, config)
```
---
## 📚 Advanced Usage
### Custom Handlers and Formatters
```python
from storm_logger import StormLogger, StormMessageFormatter
# Custom formatter
class CustomFormatter(StormMessageFormatter):
def format_business_metric(self, metric, value, **kwargs):
return f"📊 {metric}: {value} | {kwargs}"
# Custom handler
class SlackHandler(logging.Handler):
def emit(self, record):
if record.levelno >= logging.ERROR:
send_to_slack(self.format(record))
# Use custom components
logger = StormLogger(__name__)
logger.add_handler(SlackHandler())
logger.set_formatter(CustomFormatter())
```
### Performance Optimization
```python
# High-volume logging configuration
config = StormLoggerConfig(
# Batch operations
batch_size=1000,
flush_interval=5.0,
# Async logging
enable_async=True,
async_queue_size=10000,
# Performance mode
production_mode=True,
enable_debug=False,
)
```
### Integration with Monitoring Tools
```python
# Export metrics to monitoring systems
from storm_logger.exporters import PrometheusExporter, DatadogExporter
# Prometheus
prometheus_exporter = PrometheusExporter(port=9090)
logger.add_metrics_exporter(prometheus_exporter)
# Datadog
datadog_exporter = DatadogExporter(api_key="your-api-key")
logger.add_metrics_exporter(datadog_exporter)
```
---
## 🔌 Framework Integrations
### Flask
```python
from flask import Flask
from storm_logger.integrations.flask import FlaskStormLogger
app = Flask(__name__)
storm_logger = FlaskStormLogger(app)
@app.route('/api/users')
def get_users():
storm_logger.info("Fetching users")
return jsonify(users)
```
### FastAPI
```python
from fastapi import FastAPI
from storm_logger.integrations.fastapi import FastAPIStormLogger
app = FastAPI()
storm_logger = FastAPIStormLogger(app)
@app.get("/api/users")
async def get_users():
storm_logger.info("Fetching users")
return users
```
---
## 📖 API Reference
### Core Classes
#### StormLogger
Main logger class with enhanced functionality.
```python
logger = StormLogger(name, config=None)
logger.info(msg, **kwargs)
logger.success(msg, **kwargs)
logger.business_metric(metric, value, **kwargs)
logger.track_performance(operation_name)
```
#### StormLoggerConfig
Configuration management.
```python
config = StormLoggerConfig(
log_level="INFO",
enable_console=True,
enable_business_metrics=True,
storm_theme="professional"
)
```
### Utility Functions
```python
# Get configured logger
logger = get_logger(__name__, config=None)
# Setup functions
setup_script_logging(script_name, log_level="INFO")
setup_cli_logging(app_name, verbosity=0, quiet=False)
# Django configuration
DjangoStormLoggerConfig.for_environment('auto')
DjangoStormLoggerConfig.for_production(**kwargs)
DjangoStormLoggerConfig.for_development(**kwargs)
```
---
## 🤝 Contributing
We welcome contributions! Storm Logger is open source and community-driven.
- **GitHub**: [https://github.com/storm-development/storm-logger](https://github.com/storm-development/storm-logger)
- **Issues**: [Report bugs or request features](https://github.com/storm-development/storm-logger/issues)
- **Discussions**: [Join the community](https://github.com/storm-development/storm-logger/discussions)
---
## 📄 License
Storm Logger is licensed under the GNU General Public License v2.0. See [LICENSE](LICENSE) for details.
---
## 🌟 Star Us!
If Storm Logger helps your project, please give us a star on GitHub! It helps others discover the project.
---
**Built with ⚡ by Storm Development**
*Making Python logging beautiful, intelligent, and productive.*
Raw data
{
"_id": null,
"home_page": null,
"name": "storm-logger",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Storm Development Team <development@stormdevelopment.com>",
"keywords": "logging, business-intelligence, django, enterprise, storm",
"author": null,
"author_email": "Storm Development Team <development@stormdevelopment.com>",
"download_url": "https://files.pythonhosted.org/packages/02/b0/8a93bfb483f3da52948f72d33369e26655877eeb25c94d690a390d2d8f8c/storm_logger-2.0.3.tar.gz",
"platform": null,
"description": "# \u26a1 Storm Logger\n\n[](https://badge.fury.io/py/storm-logger)\n[](https://pypi.org/project/storm-logger/)\n[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)\n[](https://pepy.tech/project/storm-logger)\n[](https://github.com/psf/black)\n\n**Enterprise-grade Python logging with business intelligence, beautiful console output, and zero-configuration framework integration.**\n\n\u26a1 Storm Logger - Log the Storm - Weather your Code \u26a1 \n\n---\n\n## \ud83d\ude80 Why Storm Logger?\n\nStorm Logger transforms mundane application logging into a powerful business intelligence tool while making your console output beautiful and insightful.\n\n### \u2728 Key Benefits\n\n- **\ud83c\udfa8 Beautiful Console Output** - Rich formatting with themes, colors, tables, and progress bars\n- **\ud83d\udcca Business Intelligence** - Built-in metrics, KPIs, and performance tracking\n- **\ud83d\udd27 Zero Configuration** - Works instantly with sensible defaults\n- **\ud83d\udc0d Django Integration** - First-class Django support with one-line setup\n- **\ud83d\udd12 Security First** - Automatic PII detection and sanitization\n- **\u26a1 High Performance** - Minimal overhead, production-ready\n- **\ud83c\udfaf Developer Friendly** - Intuitive API that feels like Python's logging\n\n### \ud83c\udfad See the Difference\n\n```python\n# Traditional logging - boring and hard to read\nlogger.info(\"User login successful user_id=12345 ip=192.168.1.1 time=1683ms\")\n\n# Storm Logger - beautiful and informative\nlogger.success(\"User login successful\", user_id=12345, ip=\"192.168.1.1\", response_time=1.683)\n# Output: \u2705 User login successful | user_id: 12345 | ip: 192.168.1.1 | response_time: 1.683s\n\n# With automatic business intelligence\nlogger.business_metric(\"user_login\", response_time=1.683, user_type=\"premium\")\n# Tracks metrics, generates insights, alerts on anomalies\n```\n\n---\n\n## \ud83c\udfaf Quick Start (30 seconds)\n\n### Installation\n\n```bash\n# Basic installation\npip install storm-logger\n\n# With Django integration\npip install storm-logger[django]\n\n# All features (recommended)\npip install storm-logger[all]\n```\n\n### Basic Usage\n\n```python\nfrom storm_logger import get_logger\n\n# Get a logger instance (works just like Python's logging)\nlogger = get_logger(__name__)\n\n# Beautiful, intuitive logging\nlogger.info(\"Application started\")\nlogger.success(\"Database connected\", db_name=\"postgres\", latency=0.023)\nlogger.warning(\"Cache miss\", key=\"user_sessions\", fallback=\"database\")\nlogger.error(\"Payment failed\", user_id=123, amount=99.99, error=\"Invalid card\")\n\n# Business intelligence built-in\nlogger.business_metric(\"checkout_attempt\", amount=99.99, user_type=\"premium\")\nlogger.track_performance(\"api_request\", duration=0.145)\n```\n\n### Console Output Example\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 2024-01-15 10:30:45 | INFO | app.main \u2502\n\u2502 \u2705 Application started \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 2024-01-15 10:30:46 | SUCCESS | app.database \u2502\n\u2502 \u2705 Database connected | db_name: postgres | latency: 0.023s \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 2024-01-15 10:30:47 | WARNING | app.cache \u2502\n\u2502 \u26a0\ufe0f Cache miss | key: user_sessions | fallback: database \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n---\n\n## \ud83c\udf10 Django Integration\n\nStorm Logger provides deep Django integration with automatic configuration based on your environment.\n\n### One-Line Setup\n\n```python\n# settings.py\nfrom storm_logger.integrations.django_config import DjangoStormLoggerConfig\n\n# Automatic configuration based on DEBUG setting\nLOGGING = DjangoStormLoggerConfig.for_environment('auto').for_django_settings()\n```\n\n### Environment-Specific Configuration\n\n```python\n# settings/production.py\nfrom storm_logger.integrations.django_config import DjangoStormLoggerConfig\n\nLOGGING = DjangoStormLoggerConfig.for_production(\n enable_error_emails=True,\n enable_business_metrics=True,\n track_performance_metrics=True,\n).for_django_settings()\n```\n\n```python\n# settings/development.py\nfrom storm_logger.integrations.django_config import DjangoStormLoggerConfig\n\nLOGGING = DjangoStormLoggerConfig.for_development(\n enable_django_db_logging=True, # See SQL queries\n enable_django_template_logging=True, # Template debugging\n).for_django_settings()\n```\n\n### Using in Django Views\n\n```python\nfrom storm_logger import get_logger\n\nlogger = get_logger(__name__)\n\ndef checkout_view(request):\n logger.info(\"Checkout started\", user_id=request.user.id)\n \n # Track business metrics\n logger.business_metric(\"checkout_attempt\", cart_value=request.cart.total)\n \n # Performance tracking\n with logger.track_performance(\"payment_processing\"):\n result = process_payment(request)\n \n if result.success:\n logger.success(\"Payment processed\", amount=result.amount)\n logger.business_metric(\"revenue\", amount=result.amount)\n else:\n logger.error(\"Payment failed\", error=result.error)\n \n return redirect('order_complete' if result.success else 'checkout')\n```\n\n### Advanced Django Features\n\n```python\n# Per-app log level configuration\nconfig = DjangoStormLoggerConfig(\n app_log_levels={\n 'myapp': 'DEBUG',\n 'myapp.views': 'INFO',\n 'django.request': 'ERROR',\n 'django.db.backends': 'WARNING', # Less SQL noise\n },\n excluded_apps=['django.contrib.staticfiles'],\n)\n\n# Django-specific logging\nfrom storm_logger.integrations.django import DjangoStormLogger\n\nlogger = DjangoStormLogger(__name__)\nlogger.log_django_request(request) # Automatic request context\nlogger.log_model_change(instance, action=\"created\") # Model tracking\n```\n\n---\n\n## \ud83d\udc0d Standalone Python Scripts\n\nPerfect for scripts, CLI tools, services, and batch jobs.\n\n### Script Logging\n\n```python\nfrom storm_logger.integrations.standalone import setup_script_logging\n\n# Quick setup for scripts\nlogger = setup_script_logging(\n script_name=\"data_processor.py\",\n log_level=\"INFO\",\n log_to_file=True\n)\n\nlogger.info(\"Starting data import\")\nlogger.track_performance(\"csv_processing\", file_size=\"125MB\")\nlogger.success(\"Import completed\", records_processed=50000)\n```\n\n### CLI Applications\n\n```python\nimport argparse\nfrom storm_logger.integrations.standalone import setup_cli_logging\n\ndef main():\n parser = argparse.ArgumentParser()\n parser.add_argument('-v', '--verbose', action='count', default=0)\n parser.add_argument('-q', '--quiet', action='store_true')\n args = parser.parse_args()\n \n # Automatic verbosity handling\n logger = setup_cli_logging(\n app_name=\"myapp\",\n verbosity=args.verbose, # -v, -vv, -vvv\n quiet=args.quiet\n )\n \n logger.info(\"CLI application started\")\n```\n\n### Progress Tracking\n\n```python\nfrom storm_logger.integrations.standalone import ScriptProgressLogger\n\n# Beautiful progress tracking for batch jobs\nprogress = ScriptProgressLogger(\"data_migration\")\nprogress.start(\"Migrating user data\")\n\nusers = get_all_users()\nfor i, user in enumerate(users):\n progress.update(i + 1, len(users), f\"Migrating {user.username}\")\n migrate_user(user)\n\nprogress.complete(f\"Successfully migrated {len(users)} users\")\n```\n\n---\n\n## \ud83c\udfa8 Key Features\n\n### Beautiful Console Output\n\nChoose from multiple themes to match your preference:\n\n```python\nfrom storm_logger import StormLoggerConfig\n\n# Available themes: storm, professional, midnight, minimal\nconfig = StormLoggerConfig(storm_theme=\"midnight\")\nlogger = get_logger(__name__, config)\n```\n\n### Business Intelligence\n\nTrack KPIs and business metrics automatically:\n\n```python\n# Track business events\nlogger.business_metric(\"user_signup\", plan=\"premium\", source=\"google\")\nlogger.business_metric(\"api_usage\", endpoint=\"/api/v1/users\", response_time=0.123)\n\n# Track performance\nwith logger.track_performance(\"database_query\"):\n results = db.query(\"SELECT * FROM users\")\n\n# Get insights\ninsights = logger.get_business_insights()\n# Returns: {\"avg_response_time\": 0.145, \"total_requests\": 1523, ...}\n```\n\n### Security & Compliance\n\nAutomatic PII detection and sanitization:\n\n```python\n# Automatically sanitizes sensitive data\nlogger.info(\"Processing payment\", credit_card=\"4111-1111-1111-1111\")\n# Output: Processing payment | credit_card: ****-****-****-1111\n\n# Configure sanitization levels\nconfig = StormLoggerConfig(\n enable_sanitization=True,\n sanitization_level=\"strict\", # basic, medium, strict\n detect_pii=True\n)\n```\n\n### Rich Formatting\n\nTables, panels, progress bars, and more:\n\n```python\n# Tables\nlogger.print_table(\n title=\"API Performance\",\n data={\n \"Endpoint\": [\"/users\", \"/products\", \"/orders\"],\n \"Avg Response\": [\"45ms\", \"120ms\", \"200ms\"],\n \"Success Rate\": [\"99.9%\", \"99.5%\", \"98.2%\"]\n }\n)\n\n# Progress bars\nwith logger.progress_bar(total=1000, description=\"Processing\") as progress:\n for item in items:\n process(item)\n progress.advance(1)\n\n# Panels\nlogger.print_panel(\n \"System Status: All services operational\",\n title=\"Health Check\",\n style=\"green\"\n)\n```\n\n---\n\n## \u2699\ufe0f Configuration\n\n### Environment Variables\n\n```bash\n# Basic configuration\nexport STORM_LOGGER_LEVEL=INFO\nexport STORM_LOGGER_FORMAT=json\nexport STORM_CONSOLE_THEME=midnight\n\n# Features\nexport STORM_ENABLE_METRICS=true\nexport STORM_ENABLE_SANITIZATION=true\nexport STORM_SANITIZATION_LEVEL=medium\n\n# Performance\nexport STORM_BUFFER_SIZE=10000\nexport STORM_FLUSH_INTERVAL=60\n```\n\n### Programmatic Configuration\n\n```python\nfrom storm_logger import StormLoggerConfig, LogLevel\n\nconfig = StormLoggerConfig(\n # Logging behavior\n log_level=LogLevel.INFO,\n log_directory=\"/var/log/myapp\",\n enable_console=True,\n console_colors=True,\n \n # Features\n enable_business_metrics=True,\n track_performance_metrics=True,\n enable_sanitization=True,\n \n # Formatting\n storm_theme=\"professional\",\n timestamp_format=\"%Y-%m-%d %H:%M:%S\",\n \n # Performance\n max_file_size=10 * 1024 * 1024, # 10MB\n backup_count=5,\n compression=True,\n)\n\nlogger = get_logger(__name__, config)\n```\n\n### Framework-Specific Configuration\n\n```python\n# Django\nfrom storm_logger.integrations.django_config import DjangoStormLoggerConfig\n\nconfig = DjangoStormLoggerConfig(\n enable_django_request_logging=True,\n enable_django_db_logging=False, # Disable in production\n enable_error_emails=True,\n track_user_actions=True,\n)\n\n# Flask\nfrom storm_logger.integrations.flask import FlaskStormLogger\n\napp = Flask(__name__)\nFlaskStormLogger(app, config)\n```\n\n---\n\n## \ud83d\udcda Advanced Usage\n\n### Custom Handlers and Formatters\n\n```python\nfrom storm_logger import StormLogger, StormMessageFormatter\n\n# Custom formatter\nclass CustomFormatter(StormMessageFormatter):\n def format_business_metric(self, metric, value, **kwargs):\n return f\"\ud83d\udcca {metric}: {value} | {kwargs}\"\n\n# Custom handler\nclass SlackHandler(logging.Handler):\n def emit(self, record):\n if record.levelno >= logging.ERROR:\n send_to_slack(self.format(record))\n\n# Use custom components\nlogger = StormLogger(__name__)\nlogger.add_handler(SlackHandler())\nlogger.set_formatter(CustomFormatter())\n```\n\n### Performance Optimization\n\n```python\n# High-volume logging configuration\nconfig = StormLoggerConfig(\n # Batch operations\n batch_size=1000,\n flush_interval=5.0,\n \n # Async logging\n enable_async=True,\n async_queue_size=10000,\n \n # Performance mode\n production_mode=True,\n enable_debug=False,\n)\n```\n\n### Integration with Monitoring Tools\n\n```python\n# Export metrics to monitoring systems\nfrom storm_logger.exporters import PrometheusExporter, DatadogExporter\n\n# Prometheus\nprometheus_exporter = PrometheusExporter(port=9090)\nlogger.add_metrics_exporter(prometheus_exporter)\n\n# Datadog\ndatadog_exporter = DatadogExporter(api_key=\"your-api-key\")\nlogger.add_metrics_exporter(datadog_exporter)\n```\n\n---\n\n## \ud83d\udd0c Framework Integrations\n\n### Flask\n\n```python\nfrom flask import Flask\nfrom storm_logger.integrations.flask import FlaskStormLogger\n\napp = Flask(__name__)\nstorm_logger = FlaskStormLogger(app)\n\n@app.route('/api/users')\ndef get_users():\n storm_logger.info(\"Fetching users\")\n return jsonify(users)\n```\n\n### FastAPI\n\n```python\nfrom fastapi import FastAPI\nfrom storm_logger.integrations.fastapi import FastAPIStormLogger\n\napp = FastAPI()\nstorm_logger = FastAPIStormLogger(app)\n\n@app.get(\"/api/users\")\nasync def get_users():\n storm_logger.info(\"Fetching users\")\n return users\n```\n\n---\n\n## \ud83d\udcd6 API Reference\n\n### Core Classes\n\n#### StormLogger\nMain logger class with enhanced functionality.\n\n```python\nlogger = StormLogger(name, config=None)\nlogger.info(msg, **kwargs)\nlogger.success(msg, **kwargs)\nlogger.business_metric(metric, value, **kwargs)\nlogger.track_performance(operation_name)\n```\n\n#### StormLoggerConfig\nConfiguration management.\n\n```python\nconfig = StormLoggerConfig(\n log_level=\"INFO\",\n enable_console=True,\n enable_business_metrics=True,\n storm_theme=\"professional\"\n)\n```\n\n### Utility Functions\n\n```python\n# Get configured logger\nlogger = get_logger(__name__, config=None)\n\n# Setup functions\nsetup_script_logging(script_name, log_level=\"INFO\")\nsetup_cli_logging(app_name, verbosity=0, quiet=False)\n\n# Django configuration\nDjangoStormLoggerConfig.for_environment('auto')\nDjangoStormLoggerConfig.for_production(**kwargs)\nDjangoStormLoggerConfig.for_development(**kwargs)\n```\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Storm Logger is open source and community-driven.\n\n- **GitHub**: [https://github.com/storm-development/storm-logger](https://github.com/storm-development/storm-logger)\n- **Issues**: [Report bugs or request features](https://github.com/storm-development/storm-logger/issues)\n- **Discussions**: [Join the community](https://github.com/storm-development/storm-logger/discussions)\n\n---\n\n## \ud83d\udcc4 License\n\nStorm Logger is licensed under the GNU General Public License v2.0. See [LICENSE](LICENSE) for details.\n\n---\n\n## \ud83c\udf1f Star Us!\n\nIf Storm Logger helps your project, please give us a star on GitHub! It helps others discover the project.\n\n---\n\n**Built with \u26a1 by Storm Development**\n\n*Making Python logging beautiful, intelligent, and productive.*\n",
"bugtrack_url": null,
"license": null,
"summary": "Enterprise-grade logging system with business intelligence for Storm Development",
"version": "2.0.3",
"project_urls": {
"Bug Tracker": "https://github.com/storm-development/storm-logger/issues",
"Changelog": "https://github.com/storm-development/storm-logger/blob/main/CHANGELOG.md",
"Documentation": "https://docs.stormdevelopment.com/storm-logger",
"Homepage": "https://stormdevelopment.com",
"Repository": "https://github.com/storm-development/storm-logger"
},
"split_keywords": [
"logging",
" business-intelligence",
" django",
" enterprise",
" storm"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "50d5e6a7a72560669f8e3169070da4e5a8f0d2ff22a09fdc687be19a419c1a45",
"md5": "48de65ec791e4ac06160bcb611ae43d7",
"sha256": "30f3523e8aa2dfdb40ad81cda5a44aed1ce94a6b6ccd6f6c456e1cd0b4e19dcf"
},
"downloads": -1,
"filename": "storm_logger-2.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "48de65ec791e4ac06160bcb611ae43d7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 65392,
"upload_time": "2025-07-21T20:25:39",
"upload_time_iso_8601": "2025-07-21T20:25:39.399225Z",
"url": "https://files.pythonhosted.org/packages/50/d5/e6a7a72560669f8e3169070da4e5a8f0d2ff22a09fdc687be19a419c1a45/storm_logger-2.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "02b08a93bfb483f3da52948f72d33369e26655877eeb25c94d690a390d2d8f8c",
"md5": "883b6f18250540838c0cdca6df8cde21",
"sha256": "90109d60126413f7b225965718816f15b8a6d8fafff34158d3d70313dd2c8ccc"
},
"downloads": -1,
"filename": "storm_logger-2.0.3.tar.gz",
"has_sig": false,
"md5_digest": "883b6f18250540838c0cdca6df8cde21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 642789,
"upload_time": "2025-07-21T20:25:41",
"upload_time_iso_8601": "2025-07-21T20:25:41.192683Z",
"url": "https://files.pythonhosted.org/packages/02/b0/8a93bfb483f3da52948f72d33369e26655877eeb25c94d690a390d2d8f8c/storm_logger-2.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 20:25:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "storm-development",
"github_project": "storm-logger",
"github_not_found": true,
"lcname": "storm-logger"
}