mirror of
https://github.com/kemko/icecast-ripper.git
synced 2026-01-01 15:55:42 +03:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
"""This module contains the logger functions for the application"""
|
|
import json
|
|
import sys
|
|
from datetime import datetime
|
|
|
|
# Log levels
|
|
DEBUG = "DEBUG"
|
|
INFO = "INFO"
|
|
WARNING = "WARNING"
|
|
ERROR = "ERROR"
|
|
FATAL = "FATAL"
|
|
|
|
def log_event(event, details, level=INFO):
|
|
"""Log an event to stdout in JSON format"""
|
|
log_entry = {
|
|
"timestamp": datetime.utcnow().isoformat(),
|
|
"event": event,
|
|
"level": level,
|
|
"details": details
|
|
}
|
|
json_log_entry = json.dumps(log_entry)
|
|
print(json_log_entry, file=sys.stdout) # Write to stdout
|
|
sys.stdout.flush() # Immediately flush the log entry
|
|
|
|
# Specific log functions per level for convenience
|
|
def log_debug(event, details):
|
|
"""Log a debug event"""
|
|
log_event(event, details, level=DEBUG)
|
|
|
|
def log_info(event, details):
|
|
"""Log an info event"""
|
|
log_event(event, details, level=INFO)
|
|
|
|
def log_warning(event, details):
|
|
"""Log a warning event"""
|
|
log_event(event, details, level=WARNING)
|
|
|
|
def log_error(event, details):
|
|
"""Log an error event"""
|
|
log_event(event, details, level=ERROR)
|
|
|
|
def log_fatal(event, details):
|
|
"""Log a fatal event"""
|
|
log_event(event, details, level=FATAL)
|