2018-11-22 03:06:58 +00:00
|
|
|
"""
|
|
|
|
Set up logging to user log dir. Uses the platform's default location:
|
|
|
|
|
|
|
|
- linux: $HOME/.cache/Vorta/log
|
|
|
|
- macOS: $HOME/Library/Logs/Vorta
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
import logging
|
2019-04-19 05:23:02 +00:00
|
|
|
from logging.handlers import TimedRotatingFileHandler
|
2023-05-01 08:28:11 +00:00
|
|
|
|
2023-05-30 10:43:20 +00:00
|
|
|
from vorta import config
|
2018-11-22 03:06:58 +00:00
|
|
|
|
2019-01-15 15:20:24 +00:00
|
|
|
logger = logging.getLogger()
|
2018-11-22 03:06:58 +00:00
|
|
|
|
2019-01-13 01:51:35 +00:00
|
|
|
|
2020-01-03 14:23:06 +00:00
|
|
|
def init_logger(background=False):
|
2019-01-15 15:20:24 +00:00
|
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
logging.getLogger('peewee').setLevel(logging.INFO)
|
2023-04-17 10:17:01 +00:00
|
|
|
logging.getLogger('PyQt6').setLevel(logging.INFO)
|
2019-01-13 01:51:35 +00:00
|
|
|
|
2019-01-15 15:20:24 +00:00
|
|
|
# create logging format
|
|
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
2019-01-13 01:51:35 +00:00
|
|
|
|
2019-01-15 15:20:24 +00:00
|
|
|
# create handlers
|
2023-05-30 10:43:20 +00:00
|
|
|
fh = TimedRotatingFileHandler(config.LOG_DIR / 'vorta.log', when='d', interval=1, backupCount=5)
|
2023-09-25 21:51:17 +00:00
|
|
|
# ensure ".log" suffix
|
|
|
|
fh.namer = lambda log_name: log_name.replace(".log", "") + ".log"
|
2019-01-15 15:20:24 +00:00
|
|
|
fh.setLevel(logging.DEBUG)
|
|
|
|
fh.setFormatter(formatter)
|
|
|
|
logger.addHandler(fh)
|
2019-01-13 01:51:35 +00:00
|
|
|
|
2020-01-03 14:23:06 +00:00
|
|
|
if background:
|
|
|
|
pass
|
|
|
|
else: # log to console, when running in foreground
|
2019-01-15 15:20:24 +00:00
|
|
|
ch = logging.StreamHandler()
|
|
|
|
ch.setLevel(logging.DEBUG)
|
|
|
|
ch.setFormatter(formatter)
|
|
|
|
logger.addHandler(ch)
|