Skip to content

Commit 96657cc

Browse files
clean up old logs
I finally got around to adding code to delete old logs. Currently it saves the last 5 logs, all the other logs will be deleted.
1 parent 85acf6d commit 96657cc

File tree

1 file changed

+46
-9
lines changed

1 file changed

+46
-9
lines changed

src/main.py

+46-9
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@
2525

2626
__min_wmwpy_version__ = "0.6.0-beta"
2727

28-
import traceback
2928
import logging
3029
import os
3130
import sys
32-
import io
3331
import platform
3432
from datetime import datetime
3533
import crossplatform
34+
import re
3635

37-
def createLogger(type = 'file', filename = 'logs/log.log', debug = False):
36+
def createLogger(
37+
type = 'file',
38+
filename = 'logs/log.log',
39+
debug = False,
40+
):
3841
for handler in logging.root.handlers[:]:
3942
logging.root.removeHandler(handler)
4043
format = '[%(levelname)s] %(message)s'
@@ -63,9 +66,40 @@ def createLogger(type = 'file', filename = 'logs/log.log', debug = False):
6366
logger = logging.getLogger(__name__)
6467
logger.info(filename)
6568

66-
_log_filename_date_format = "%m-%d-%y_%H-%M-%S"
69+
def setup_logger(
70+
name: str,
71+
dir: str = 'logs',
72+
extension: str = 'log',
73+
keep: int = 5,
74+
debug: bool = False,
75+
):
76+
log_filename = os.path.join(dir, f'{datetime.now().strftime(name)}.{extension}')
77+
78+
log_files = os.listdir(dir)
79+
logs = []
6780

68-
_log_filename = f'logs/{datetime.now().strftime(_log_filename_date_format)}.log'
81+
createLogger('file', filename = log_filename, debug = debug)
82+
83+
for file in log_files:
84+
if file == os.path.basename(log_filename):
85+
continue
86+
87+
try:
88+
logs.append((datetime.strptime(os.path.splitext(file)[0], name), file))
89+
except ValueError:
90+
continue
91+
92+
logs.sort(key = lambda i: i[0])
93+
94+
logs = logs[max(0, keep-1)::]
95+
96+
for log in logs:
97+
logging.debug(f'deleting log: {log[1]}')
98+
os.remove(os.path.join(dir, log[1]))
99+
100+
return log_filename
101+
102+
_log_filename_format = "%m-%d-%y_%H-%M-%S"
69103

70104
debug = False
71105

@@ -76,13 +110,16 @@ def createLogger(type = 'file', filename = 'logs/log.log', debug = False):
76110
if len(args) > 0:
77111
if args[0] in ['-d', '--debug']:
78112
debug = True
79-
createLogger('file', filename = _log_filename, debug = debug)
113+
114+
_log_filename = setup_logger(
115+
_log_filename_format,
116+
debug = debug,
117+
)
80118

81119
import tkinter as tk
82-
from tkinter import ttk, simpledialog, messagebox, filedialog
120+
from tkinter import ttk, messagebox, filedialog
83121
import tkwidgets
84-
from PIL import Image, ImageTk, ImageColor, ImageDraw
85-
import json
122+
from PIL import Image, ImageTk, ImageDraw
86123
from settings import Settings
87124
from lxml import etree
88125
import numpy

0 commit comments

Comments
 (0)