storm-logger


Namestorm-logger JSON
Version 2.0.3 PyPI version JSON
download
home_pageNone
SummaryEnterprise-grade logging system with business intelligence for Storm Development
upload_time2025-07-21 20:25:41
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords logging business-intelligence django enterprise storm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ⚡ Storm Logger

[![PyPI version](https://badge.fury.io/py/storm-logger.svg)](https://badge.fury.io/py/storm-logger)
[![Python Versions](https://img.shields.io/pypi/pyversions/storm-logger.svg)](https://pypi.org/project/storm-logger/)
[![License: GPL v2](https://img.shields.io/badge/License-GPL_v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[![Downloads](https://pepy.tech/badge/storm-logger)](https://pepy.tech/project/storm-logger)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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[![PyPI version](https://badge.fury.io/py/storm-logger.svg)](https://badge.fury.io/py/storm-logger)\n[![Python Versions](https://img.shields.io/pypi/pyversions/storm-logger.svg)](https://pypi.org/project/storm-logger/)\n[![License: GPL v2](https://img.shields.io/badge/License-GPL_v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)\n[![Downloads](https://pepy.tech/badge/storm-logger)](https://pepy.tech/project/storm-logger)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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"
}
        
Elapsed time: 0.41333s