Add new setting DATABASE_LOG_LEVEL to control SQLAlchemy loggers separately from the main one

This commit is contained in:
Théophile Diot 2024-01-24 10:15:02 +01:00
parent ea7959649e
commit 8194d0f989
No known key found for this signature in database
GPG key ID: 248FEA4BAE400D06
2 changed files with 18 additions and 6 deletions

View file

@ -13,6 +13,16 @@
"label": "The database URI",
"regex": "^(postgresql|mysql|mariadb|sqlite|oracle)(\\+[\\w\\-]+)?:.+$",
"type": "text"
},
"DATABASE_LOG_LEVEL": {
"context": "global",
"default": "warning",
"help": "The level to use for database logs.",
"id": "database-log-level",
"label": "Database log level",
"regex": "^(debug|info|warn|warning|error)$",
"type": "select",
"select": ["debug", "info", "warn", "warning", "error"]
}
}
}

View file

@ -30,12 +30,14 @@ basicConfig(
level=default_level,
)
getLogger("sqlalchemy.orm.mapper.Mapper").setLevel(default_level if default_level != INFO else WARNING)
getLogger("sqlalchemy.orm.relationships.RelationshipProperty").setLevel(default_level if default_level != INFO else WARNING)
getLogger("sqlalchemy.orm.strategies.LazyLoader").setLevel(default_level if default_level != INFO else WARNING)
getLogger("sqlalchemy.pool.impl.QueuePool").setLevel(default_level if default_level != INFO else WARNING)
getLogger("sqlalchemy.pool.impl.SingletonThreadPool").setLevel(default_level if default_level != INFO else WARNING)
getLogger("sqlalchemy.engine.Engine").setLevel(default_level if default_level != INFO else WARNING)
database_default_level = _nameToLevel.get(getenv("DATABASE_LOG_LEVEL", "WARNING").upper(), WARNING)
getLogger("sqlalchemy.orm.mapper.Mapper").setLevel(database_default_level)
getLogger("sqlalchemy.orm.relationships.RelationshipProperty").setLevel(database_default_level)
getLogger("sqlalchemy.orm.strategies.LazyLoader").setLevel(database_default_level)
getLogger("sqlalchemy.pool.impl.QueuePool").setLevel(database_default_level)
getLogger("sqlalchemy.pool.impl.SingletonThreadPool").setLevel(database_default_level)
getLogger("sqlalchemy.engine.Engine").setLevel(database_default_level)
# Edit the default levels of the logging module
addLevelName(CRITICAL, "🚨")