Tobias Weise e9c1d1815f
All checks were successful
Gitea Docker Redeploy / Redploy-App-on-self-via-SSH (push) Successful in 3m9s
app factory and more
2024-09-09 16:18:32 +02:00

69 lines
1.9 KiB
Python

import logging
import os
from datetime import datetime, date
from lib.models import LogEntry
class ElasticsearchLogHandler(logging.Handler):
def __init__(self, level):
logging.Handler.__init__(self=self)
#super().__init__(self=self)
self.setLevel(level)
def emit(self, record):
#print(str(record.__dict__), flush=True)
#{'name': 'werkzeug',
# 'msg': '192.168.64.1 - - [07/Sep/2024 11:43:23] "%s" %s %s',
# 'args': ('GET /socket.io/?EIO=4&transport=websocket&sid=MtyTmZQs5IA6DnvhAAAA HTTP/1.1', '200', '-'),
# 'levelname': 'INFO',
# 'levelno': 20,
# 'pathname': '/usr/local/lib/python3.12/dist-packages/werkzeug/_internal.py',
# 'filename': '_internal.py',
# 'module': '_internal',
# 'exc_info': None,
# 'exc_text': None,
# 'stack_info': None,
# 'lineno': 97,
# 'funcName': '_log',
# 'created': 1725709403.1972203,
# 'msecs': 197.0,
# 'relativeCreated': 37105.026721954346,
# 'thread': 133472930760384,
# 'threadName': 'Thread-15 (process_request_thread)',
# 'processName': 'MainProcess',
# 'process': 26,
# 'taskName': None}
entry = LogEntry(
message = record.msg,
level = record.levelname, #record.levelno,
creation_time = datetime.now(),
name = record.name,
pathname = record.pathname,
filename = record.filename,
module = record.module,
lineno = record.lineno,
funcName = record.funcName,
threadName = record.threadName,
processName = record.processName
)
entry.save()
def get_log_level(default=logging.WARN):
LOG_LEVEL = os.getenv("LOG_LEVEL")
if LOG_LEVEL:
return eval("logging." + LOG_LEVEL)
return default