Verbessertes Logging #64

Merged
weeman merged 5 commits from Brain/ki-backend:fix-logging into main 2022-02-28 18:42:54 +01:00
Showing only changes of commit f7e058d387 - Show all commits

8
app.py
View File

@ -8,7 +8,6 @@ import os
from dotenv import load_dotenv, find_dotenv
from flask import Flask
from flask_cors import CORS
from flask.logging import default_handler
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from ldap3.utils.log import logger as ldap3_logger
@ -17,14 +16,15 @@ from ldap3.utils.log import set_library_log_detail_level, BASIC
load_dotenv(find_dotenv())
app = Flask(__name__)
# Configure logging
loglevel = os.getenv("KI_LOGLEVEL", logging.WARNING)
loglevel = int(loglevel)
app.logger.setLevel(loglevel)
app.logger.propagate = False # do not forward messages to the root logger
logging.basicConfig(level=loglevel, format='[%(asctime)s] %(levelname)s [%(name)s] %(message)s') # configure root logger as fallback
set_library_log_detail_level(BASIC)
ldap3_logger.addHandler(default_handler)
logging.getLogger('werkzeug').propagate = False # werkzeug has its own ColorStreamHandler
set_library_log_detail_level(BASIC) # ldap3 has different verbosity levels internally
Review

Wäre es eine Idee das hier auf das höchste zu setzen, wenn der KI_LOGLEVEL z.B. <= DEBUG ist?
Also kein abgefahrenes Mapping sondern nur eine Stufe und fertig.
Wir hatten ja schon Probleme mit dem LDAP.

Wäre es eine Idee das hier auf das höchste zu setzen, wenn der `KI_LOGLEVEL` z.B. `<= DEBUG` ist? Also kein abgefahrenes Mapping sondern nur eine Stufe und fertig. Wir hatten ja schon Probleme mit dem LDAP.
Review

Gewissermaßen passiert das schon. ldap3 selbst loggt im Standard nur, wenn der root-Logger auf DEBUG steht.

Gleichermaßen bedeutet das, dass ldap3 in production nie selbst loggen wird. Das könnte ich aber noch einbauen. Also wenn production, dann soll ldap3 loggen, aber auf Level ERROR statt BASIC.

BASIC ist schon einigermaßen noisy. Die detaillierteren Level gehen dann auf Netzwerk- und Protokollebene, was für den normalen Entwicklungsalltag zu viel sein dürfte. Die sollten vielleicht nur konkret bei der Fehlersuche eingesetzt werden.

Gewissermaßen passiert das schon. _ldap3_ selbst loggt im Standard nur, wenn der root-Logger auf `DEBUG` steht. Gleichermaßen bedeutet das, dass _ldap3_ in production nie selbst loggen wird. Das könnte ich aber noch einbauen. Also wenn production, dann soll _ldap3_ loggen, aber auf Level `ERROR` statt `BASIC`. `BASIC` ist schon einigermaßen noisy. Die detaillierteren Level gehen dann auf Netzwerk- und Protokollebene, was für den normalen Entwicklungsalltag zu viel sein dürfte. Die sollten vielleicht nur konkret bei der Fehlersuche eingesetzt werden.
app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("SQLALCHEMY_DATABASE_URI")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False