Commit c619c835 authored by dmMaze's avatar dmMaze
Browse files

save logs to ./data/logs

parent 8dc9b649
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ ICON_PATH = 'data/icons/[ICONNAME]'

UI_PATH = osp.dirname(osp.abspath(__file__))
PROGRAM_PATH = osp.dirname(UI_PATH)
LOGGING_PATH = osp.join(PROGRAM_PATH, 'data/logs')

LIBS_PATH = osp.join(PROGRAM_PATH, 'data/libs')

@@ -47,3 +48,5 @@ FLAG_QT6 = False

SLIDERHANDLE_COLOR = (85,85,96)
FOREGROUND_FONTCOLOR = (93,93,95)

MAX_NUM_LOG = 7
 No newline at end of file
+25 −1
Original line number Diff line number Diff line
import datetime
import logging
import os

import os.path as osp
from glob import glob
import termcolor


if os.name == "nt":  # Windows
    import colorama
    colorama.init()
@@ -64,5 +66,27 @@ class ColoredLogger(logging.Logger):
        return


def setup_logging(logfile_dir: str, max_num_logs=14):

    if not osp.exists(logfile_dir):
        os.makedirs(logfile_dir)
    else:
        old_logs = glob(osp.join(logfile_dir, '*.log'))
        n_log = len(old_logs)
        if n_log >= max_num_logs:
            to_remove = n_log - max_num_logs + 1
            try:
                for ii in range(to_remove):
                    os.remove(old_logs[ii])
            except Exception as e:
                logger.error(e)

    logfilename = datetime.datetime.now().strftime('_%Y_%m_%d-%H_%M_%S.log')
    logfilep = osp.join(logfile_dir, logfilename)
    fh = logging.FileHandler(logfilep, mode='w')
    fh.setLevel(logging.DEBUG)
    logger.addHandler(fh)


logging.setLoggerClass(ColoredLogger)
logger = logging.getLogger('BallonTranslator')