set log level from database config
This commit is contained in:
parent
426adf1117
commit
0322fa567b
|
@ -14,6 +14,7 @@ from datetime import datetime, timedelta
|
|||
from .config import Config
|
||||
from .database import Database
|
||||
from .http_client import HttpClient
|
||||
from .logger import set_level
|
||||
from .misc import DotDict, check_open_port, set_app
|
||||
from .views import routes
|
||||
|
||||
|
@ -41,6 +42,9 @@ class Application(web.Application):
|
|||
self.database.create()
|
||||
self.set_signal_handler()
|
||||
|
||||
with self.database.session as s:
|
||||
set_level(s.get_config('log_level'))
|
||||
|
||||
|
||||
@property
|
||||
def client(self):
|
||||
|
|
|
@ -4,6 +4,7 @@ from datetime import datetime
|
|||
from tinysql import Column, Table
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from .logger import set_level
|
||||
from .misc import AppBase, DotDict, boolean
|
||||
|
||||
|
||||
|
@ -245,6 +246,9 @@ class Connection(tinysql.ConnectionMixin):
|
|||
if value == '__DEFAULT__':
|
||||
value = DEFAULT_CONFIG[key][1]
|
||||
|
||||
if key == 'log_level':
|
||||
set_level(value)
|
||||
|
||||
row = self.select('config', key=key).one()
|
||||
|
||||
if row:
|
||||
|
|
|
@ -4,6 +4,16 @@ import os
|
|||
from pathlib import Path
|
||||
|
||||
|
||||
LEVELS = {
|
||||
'critical': logging.CRITICAL,
|
||||
'error': logging.ERROR,
|
||||
'warning': logging.WARNING,
|
||||
'info': logging.INFO,
|
||||
'verbose': 15,
|
||||
'debug': logging.DEBUG
|
||||
}
|
||||
|
||||
|
||||
## Add the verbose logging level
|
||||
def verbose(message, *args, **kwargs):
|
||||
if not logging.root.isEnabledFor(logging.VERBOSE):
|
||||
|
@ -15,10 +25,6 @@ setattr(logging, 'verbose', verbose)
|
|||
setattr(logging, 'VERBOSE', 15)
|
||||
logging.addLevelName(15, 'VERBOSE')
|
||||
|
||||
|
||||
## Get log level and file from environment if possible
|
||||
env_log_level = os.environ.get('LOG_LEVEL', 'INFO').upper()
|
||||
|
||||
try:
|
||||
env_log_file = Path(os.environ.get('LOG_FILE')).expanduser().resolve()
|
||||
|
||||
|
@ -26,14 +32,6 @@ except TypeError:
|
|||
env_log_file = None
|
||||
|
||||
|
||||
## Make sure the level from the environment is valid
|
||||
try:
|
||||
log_level = getattr(logging, env_log_level)
|
||||
|
||||
except AttributeError:
|
||||
log_level = logging.INFO
|
||||
|
||||
|
||||
## Set logging config
|
||||
handlers = [logging.StreamHandler()]
|
||||
|
||||
|
@ -41,7 +39,11 @@ if env_log_file:
|
|||
handlers.append(logging.FileHandler(env_log_file))
|
||||
|
||||
logging.basicConfig(
|
||||
level = log_level,
|
||||
level = logging.INFO,
|
||||
format = "[%(asctime)s] %(levelname)s: %(message)s",
|
||||
handlers = handlers
|
||||
)
|
||||
|
||||
|
||||
def set_level(level):
|
||||
logging.getLogger().setLevel(LEVELS[level.lower()])
|
||||
|
|
Loading…
Reference in a new issue