25
25
26
26
__min_wmwpy_version__ = "0.6.0-beta"
27
27
28
- import traceback
29
28
import logging
30
29
import os
31
30
import sys
32
- import io
33
31
import platform
34
32
from datetime import datetime
35
33
import crossplatform
34
+ import re
36
35
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
+ ):
38
41
for handler in logging .root .handlers [:]:
39
42
logging .root .removeHandler (handler )
40
43
format = '[%(levelname)s] %(message)s'
@@ -63,9 +66,40 @@ def createLogger(type = 'file', filename = 'logs/log.log', debug = False):
63
66
logger = logging .getLogger (__name__ )
64
67
logger .info (filename )
65
68
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 = []
67
80
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"
69
103
70
104
debug = False
71
105
@@ -76,13 +110,16 @@ def createLogger(type = 'file', filename = 'logs/log.log', debug = False):
76
110
if len (args ) > 0 :
77
111
if args [0 ] in ['-d' , '--debug' ]:
78
112
debug = True
79
- createLogger ('file' , filename = _log_filename , debug = debug )
113
+
114
+ _log_filename = setup_logger (
115
+ _log_filename_format ,
116
+ debug = debug ,
117
+ )
80
118
81
119
import tkinter as tk
82
- from tkinter import ttk , simpledialog , messagebox , filedialog
120
+ from tkinter import ttk , messagebox , filedialog
83
121
import tkwidgets
84
- from PIL import Image , ImageTk , ImageColor , ImageDraw
85
- import json
122
+ from PIL import Image , ImageTk , ImageDraw
86
123
from settings import Settings
87
124
from lxml import etree
88
125
import numpy
0 commit comments