raspiblitz/home.admin/BlitzTUI/blitztui/file_logger.py

57 lines
2.4 KiB
Python
Raw Normal View History

2020-05-30 12:56:24 +01:00
import getpass
2019-11-15 21:25:12 +01:00
import json
import logging
import logging.config
import os
import sys
IS_WIN32_ENV = sys.platform == "win32"
2020-01-25 21:45:52 +00:00
def setup_logging(default_path=os.path.abspath(os.path.expanduser('~/.blitz-tui.json')), log_level="INFO"):
2019-11-15 21:25:12 +01:00
"""Setup logging configuration"""
path = default_path
if os.path.exists(path):
with open(path, 'rt') as f:
config = json.load(f)
logging.config.dictConfig(config)
else: # if $default_path does not exist use the following default log setup
if IS_WIN32_ENV:
log_file = "blitz-tui.log"
else:
2020-05-30 12:56:24 +01:00
if os.path.isdir('/var/cache/raspiblitz'):
try:
os.mkdir('/var/cache/raspiblitz/{}'.format(getpass.getuser()))
except FileExistsError:
pass
log_file = os.path.abspath('/var/cache/raspiblitz/{}/blitz-tui.log'.format(getpass.getuser()))
else:
log_file = os.path.abspath(os.path.expanduser('~/blitz-tui.log'))
2019-11-15 21:25:12 +01:00
default_config_as_dict = dict(
version=1,
disable_existing_loggers=False,
formatters={'simple': {'format': '%(asctime)s - %(levelname)s - %(message)s'},
'extended': {
'format': '%(asctime)s - %(name)s - %(levelname)s - %(module)s:%(lineno)d - %(message)s'}},
handlers={'console': {'class': 'logging.StreamHandler',
'level': 'INFO',
'formatter': 'extended',
'stream': 'ext://sys.stdout'},
'file_handler': {'class': 'logging.handlers.RotatingFileHandler',
2020-01-25 21:45:52 +00:00
'level': log_level,
2019-11-15 21:25:12 +01:00
'formatter': 'extended',
'filename': log_file,
2020-05-30 14:04:35 +02:00
'maxBytes': 2*1024*1024, # 2 MB
2020-05-30 12:56:24 +01:00
'backupCount': 1,
2019-11-15 21:25:12 +01:00
'encoding': 'utf8'}},
loggers={'infoblitz': {'level': 'DEBUG',
'handlers': ['console', 'file_handler'],
'propagate': 'no'}},
root={'level': 'DEBUG', 'handlers': ['console', 'file_handler']}
)
logging.config.dictConfig(default_config_as_dict)