Skip to main content

🎨 SimpleColoredLogs

Professional Terminal Logger für Python mit Farben, strukturiertem Logging und vielen Features.

📦 Installation

pip install SimpleColoredLogs

Optional mit Farb-Support:

pip install SimpleColoredLogs[color]

🚀 Schnellstart

from logger import logger, Category

# Einfache Logs
logger.info(Category.API, "Server gestartet")
logger.success(Category.SYSTEM, "Konfiguration geladen")
logger.warn(Category.SECURITY, "Ungewöhnliche Aktivität")
logger.error(Category.DATABASE, "Verbindung fehlgeschlagen")

🎯 Features

  • ✅ 15+ Log-Levels (TRACE, DEBUG, INFO, SUCCESS, WARN, ERROR, CRITICAL, FATAL, etc.)
  • ✅ 50+ vordefinierte Kategorien (API, DATABASE, SECURITY, PAYMENT, etc.)
  • ✅ Farbige Terminal-Ausgabe
  • ✅ Strukturiertes Logging (JSON, Logfmt)
  • ✅ Async-Mode für High-Performance
  • ✅ Performance-Metriken
  • ✅ Context-Management
  • ✅ Exception-Handling mit Tracebacks
  • ✅ Log-Rotation & Kompression
  • ✅ Remote Logging (Syslog)
  • ✅ Sensitive Data Redaction
  • ✅ Distributed Tracing Support

📝 Verwendung

Basis-Logging

from logger import logger, Category, LogLevel

# Logger konfigurieren
logger.initialize(
    min_level=LogLevel.INFO,
    console=True,
    file_path="logs/app.log"
)

# Logs schreiben
logger.info(Category.API, "Request empfangen")
logger.success(Category.DATABASE, "Query erfolgreich")
logger.error(Category.SYSTEM, "Fehler aufgetreten")

Mit Shortcuts

from logger import logger, C

# Kürzer und übersichtlicher
logger.info(C.CORE.API, "API aufgerufen")
logger.error(C.SEC.FRAUD, "Betrugsversuch erkannt")
logger.success(C.BIZ.PAY, "Zahlung erfolgreich")

Mit Context

from logger import logger, Category

with logger.context("PaymentFlow"):
    logger.info(Category.PAYMENT, "Zahlung gestartet")
    logger.processing(Category.PAYMENT, "Verarbeite Transaktion")
    logger.success(Category.PAYMENT, "Zahlung abgeschlossen")

Mit strukturierten Daten

logger.info(
    Category.API,
    "Request verarbeitet",
    method="POST",
    endpoint="/api/users",
    status=201,
    duration_ms=45
)

Exception Handling

try:
    result = process_payment()
except Exception as e:
    logger.error(
        Category.PAYMENT,
        "Zahlung fehlgeschlagen",
        exception=e,  # Automatischer Traceback
        order_id=order_id
    )

Performance-Messung

# Mit Context Manager
with logger.measure(Category.DATABASE, "complex_query"):
    results = db.query("SELECT * FROM users")

# Als Decorator
@logger.timer(Category.API, "handle_request")
def handle_request():
    # ... code ...
    pass

🎨 Alle Log-Levels

logger.trace(Category.DEBUG, "Sehr detailliert")
logger.debug(Category.DEBUG, "Debug-Info")
logger.info(Category.SYSTEM, "Information")
logger.success(Category.SYSTEM, "Erfolgreich")
logger.loading(Category.SYSTEM, "Lädt...")
logger.processing(Category.SYSTEM, "Verarbeitet...")
logger.progress(Category.SYSTEM, "Fortschritt", percent=75)
logger.waiting(Category.NETWORK, "Wartet...")
logger.notice(Category.SYSTEM, "Wichtiger Hinweis")
logger.warn(Category.SECURITY, "Warnung")
logger.error(Category.API, "Fehler")
logger.critical(Category.SYSTEM, "Kritisch")
logger.fatal(Category.SYSTEM, "Fatal")
logger.security(Category.SECURITY, "Sicherheits-Event")

📁 Kategorien

Core System

API, DATABASE, SERVER, CACHE, AUTH, SYSTEM, CONFIG, RUNTIME

Network

NETWORK, HTTP, WEBSOCKET, GRPC, GRAPHQL, REST, DNS, CDN

Security

SECURITY, ENCRYPTION, FIREWALL, AUDIT, FRAUD, MFA

Business

BUSINESS, WORKFLOW, TRANSACTION, PAYMENT, ACCOUNTING, INVENTORY

Observability

METRICS, PERFORMANCE, HEALTH, MONITORING, TRACING

Alle 50+ Kategorien in der Dokumentation

🔧 Konfiguration

Via Code

from logger import logger, LogLevel
from pathlib import Path

logger.initialize(
    min_level=LogLevel.DEBUG,
    console=True,
    console_colorized=True,
    file_path=Path("logs/app.log"),
    file_max_size=10 * 1024 * 1024,  # 10MB
    async_mode=True,
    sampling_rate=1.0
)

Via Umgebungsvariablen

export LOG_LEVEL=DEBUG
export LOG_FILE=logs/app.log
export LOG_FORMAT=JSON
export LOG_COLORIZE=true
# Lädt automatisch Umgebungsvariablen
logger.initialize(apply_env_vars=True)

🔌 Handler & Filter

File Handler mit Rotation

from logger import logger, FileHandler
from pathlib import Path

handler = FileHandler(
    filepath=Path("logs/app.log"),
    max_size=10 * 1024 * 1024,  # 10MB
    backup_count=5,
    compress=True
)
logger.add_handler(handler)

Remote Logging

from logger import logger, NetworkHandler

handler = NetworkHandler(
    host="logs.example.com",
    port=514,
    protocol="udp"
)
logger.add_handler(handler)

Sensitive Data Redaction

# Automatisches Entfernen von Passwörtern, API-Keys, etc.
logger.enable_redaction()

logger.info(Category.AUTH, "Login mit password=secret123")
# Output: "Login mit password=[REDACTED]"

📊 Spezielle Logger

Audit Logger

from logger import AuditLogger

audit = AuditLogger()

audit.log_access(
    user="john_doe",
    resource="/api/users",
    action="READ",
    result="SUCCESS"
)

audit.log_security_event(
    event="Failed login attempts",
    severity="HIGH",
    ip="192.168.1.100"
)

Performance Logger

from logger import PerformanceLogger

perf = PerformanceLogger()

perf.log_timing("api_response", 0.045)  # 45ms
perf.log_throughput("requests", count=1000, duration=60.0)

Structured Logger

from logger import StructuredLogger, Category

struct = StructuredLogger()

struct.log_event(
    event_type="order_placed",
    category=Category.BUSINESS,
    message="Bestellung aufgegeben",
    user_id=123,
    order_id=1001,
    amount=99.99
)

📈 Metriken

# Metriken abrufen
metrics = logger.get_metrics()

print(f"Total Logs: {metrics['total_logs']}")
print(f"Errors: {metrics['error_count']}")
print(f"Avg Process Time: {metrics['avg_process_time_ms']} ms")

# Metriken zurücksetzen
logger.reset_metrics()

🌍 Distributed Tracing

# Trace-IDs für Request-Tracking
logger.set_trace_id("req-12345")
logger.set_correlation_id("corr-67890")

logger.info(Category.API, "Request verarbeitet")
# Output enthält automatisch trace_id

logger.clear_tracing()

💡 Best Practices

✅ DO

# Aussagekräftige Kategorien
logger.info(Category.API, "Request empfangen", endpoint="/users")

# Strukturierte Metadaten
logger.error(Category.DATABASE, "Query failed", 
            query=sql, error=str(e))

# Context für zusammenhängende Logs
with logger.context("OrderProcessing"):
    logger.info(Category.BUSINESS, "Verarbeite Bestellung")

# Exception-Parameter nutzen
logger.error(Category.SYSTEM, "Fehler", exception=e)

❌ DON'T

# Zu generisch
logger.info("SYSTEM", "Irgendwas ist passiert")

# Fehlende Kontext-Infos
logger.error(Category.DATABASE, "Error")

# Exception als String (kein Traceback!)
logger.error(Category.SYSTEM, f"Error: {str(e)}")

📚 Beispiele

Siehe examples/ Verzeichnis für:

  • Basic Usage
  • Async Logging
  • Web App Integration
  • Performance Monitoring
  • Audit Trails

🛠️ Requirements

  • Python 3.8+
  • colorama (optional, für Windows)

📄 Lizenz

MIT License - siehe LICENSE

🤝 Contributing

Contributions sind willkommen! Siehe CONTRIBUTING.md

📧 Support

⭐ Support

Wenn dir SimpleColoredLogs gefällt, gib uns einen ⭐ auf GitHub!


Made with ❤️ by OPPRO.NET Network

Metadata

Release files for SimpleColoredLogs 1.16.1.2026

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SimpleColoredLogs 1.16.1.2026
File Size Uploaded
simplecoloredlogs-1.16.1.2026.tar.gz 21.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for SimpleColoredLogs 1.16.1.2026
File Interpreter ABI Platform
simplecoloredlogs-1.16.1.2026-py3-none-any.whl Python 3 none any Details

Total release size: 42.7 kB

Release files / simplecoloredlogs-1.16.1.2026.tar.gz

Download URL simplecoloredlogs-1.16.1.2026.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b980334d8d57806d85661cf2269dfedbede963bc5aa8976a5f34222a0a6e5216
BLAKE2b-256 checksum
How to use checksums
54a2acb1d342409b358f796f895ba3befa3c004c646230816d5ff4dafa1935b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release files / simplecoloredlogs-1.16.1.2026-py3-none-any.whl

Download URL simplecoloredlogs-1.16.1.2026-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4da186d6661026cbc82f611f91af0d1354fc21142cb5cd9bcca004fcfd8c75fb
BLAKE2b-256 checksum
How to use checksums
3a8d9f08fea5070eedb777af2ab4bcedaea6e40d679e3f9f9652331fe7bd4072
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.16.1.2026 This release

2 release files

1.3.0

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page