mirror of https://github.com/borgbase/vorta
Support disabling file logging
This commit is contained in:
parent
b2cf5b1fc9
commit
6a80518760
|
@ -9,7 +9,7 @@ from peewee import SqliteDatabase
|
|||
from vorta import config
|
||||
from vorta._version import __version__
|
||||
from vorta.i18n import trans_late, translate
|
||||
from vorta.log import init_logger, logger
|
||||
from vorta.log import init_file_logging, init_logger, logger
|
||||
from vorta.store.connection import init_db
|
||||
from vorta.updater import get_updater
|
||||
from vorta.utils import DEFAULT_DIR_FLAG, parse_args
|
||||
|
@ -79,6 +79,7 @@ def main():
|
|||
},
|
||||
)
|
||||
init_db(sqlite_db)
|
||||
init_file_logging()
|
||||
|
||||
# Init app after database is available
|
||||
from vorta.application import VortaApp
|
||||
|
|
|
@ -13,22 +13,21 @@ from vorta import config
|
|||
|
||||
logger = logging.getLogger()
|
||||
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
fh = TimedRotatingFileHandler(config.LOG_DIR / 'vorta.log', when='d', interval=1, backupCount=5)
|
||||
fh.namer = lambda log_name: log_name.replace(".log", "") + ".log"
|
||||
fh.setLevel(logging.DEBUG)
|
||||
fh.setFormatter(formatter)
|
||||
|
||||
|
||||
def init_logger(background=False):
|
||||
logger.setLevel(logging.DEBUG)
|
||||
logging.getLogger('peewee').setLevel(logging.INFO)
|
||||
logging.getLogger('PyQt6').setLevel(logging.INFO)
|
||||
|
||||
# create logging format
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
# create handlers
|
||||
fh = TimedRotatingFileHandler(config.LOG_DIR / 'vorta.log', when='d', interval=1, backupCount=5)
|
||||
# ensure ".log" suffix
|
||||
fh.namer = lambda log_name: log_name.replace(".log", "") + ".log"
|
||||
fh.setLevel(logging.DEBUG)
|
||||
fh.setFormatter(formatter)
|
||||
logger.addHandler(fh)
|
||||
# Enable file logging by default at the start, since SettingsModel isn't initialised
|
||||
toggle_file_logging(True)
|
||||
|
||||
if background:
|
||||
pass
|
||||
|
@ -37,3 +36,23 @@ def init_logger(background=False):
|
|||
ch.setLevel(logging.DEBUG)
|
||||
ch.setFormatter(formatter)
|
||||
logger.addHandler(ch)
|
||||
|
||||
|
||||
def init_file_logging():
|
||||
"""
|
||||
Decides file logging based on the user's preference
|
||||
"""
|
||||
from vorta.store.models import SettingsModel
|
||||
|
||||
toggle_file_logging(SettingsModel.get(key='enable_logging_to_file').value)
|
||||
|
||||
|
||||
def toggle_file_logging(should_log_to_file):
|
||||
"""
|
||||
Enables file logging according to the input
|
||||
"""
|
||||
|
||||
if should_log_to_file:
|
||||
logger.addHandler(fh)
|
||||
else:
|
||||
logger.removeHandler(fh)
|
||||
|
|
|
@ -18,6 +18,7 @@ def get_misc_settings() -> List[Dict[str, str]]:
|
|||
startup = trans_late('settings', 'Startup')
|
||||
information = trans_late('settings', 'Information')
|
||||
security = trans_late('settings', 'Security')
|
||||
logging = trans_late('settings', 'Logging')
|
||||
|
||||
# Default settings for all platforms.
|
||||
settings = [
|
||||
|
@ -98,6 +99,16 @@ def get_misc_settings() -> List[Dict[str, str]]:
|
|||
),
|
||||
'tooltip': trans_late('settings', 'Set owner to current user and umask to 0277'),
|
||||
},
|
||||
{
|
||||
'key': 'enable_logging_to_file',
|
||||
'value': True,
|
||||
'type': 'checkbox',
|
||||
'group': logging,
|
||||
'label': trans_late('settings', 'Enable logging to file'),
|
||||
'tooltip': trans_late(
|
||||
'settings', 'When disabled, logging to a file will be turned off, and logs will not be saved in a file'
|
||||
),
|
||||
},
|
||||
{
|
||||
'key': 'previous_profile_id',
|
||||
'str_value': '1',
|
||||
|
|
|
@ -13,6 +13,7 @@ from PyQt6.QtWidgets import (
|
|||
)
|
||||
|
||||
from vorta.i18n import translate
|
||||
from vorta.log import toggle_file_logging
|
||||
from vorta.store.models import BackupProfileMixin, SettingsModel
|
||||
from vorta.store.settings import get_misc_settings
|
||||
from vorta.utils import get_asset, search
|
||||
|
@ -99,6 +100,9 @@ class MiscTab(MiscTabBase, MiscTabUI, BackupProfileMixin):
|
|||
if setting.key == 'enable_fixed_units':
|
||||
cb.stateChanged.connect(self.refresh_archive.emit)
|
||||
|
||||
if setting.key == 'enable_logging_to_file':
|
||||
cb.stateChanged.connect(toggle_file_logging)
|
||||
|
||||
tb = ToolTipButton()
|
||||
tb.setToolTip(setting.tooltip)
|
||||
|
||||
|
|
Loading…
Reference in New Issue