raspiblitz/home.admin/BlitzTUI/blitztui/file_logger.py
Robert Habermann 034460f058 fix maxBytes
2020-05-30 14:04:35 +02:00

56 lines
2.4 KiB
Python

import getpass
import json
import logging
import logging.config
import os
import sys
IS_WIN32_ENV = sys.platform == "win32"
def setup_logging(default_path=os.path.abspath(os.path.expanduser('~/.blitz-tui.json')), log_level="INFO"):
"""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:
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'))
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',
'level': log_level,
'formatter': 'extended',
'filename': log_file,
'maxBytes': 2*1024*1024, # 2 MB
'backupCount': 1,
'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)