17
17
"""
18
18
19
19
import os
20
- import sys
21
- import logging
22
20
import PySimpleGUI as sg
23
21
import queue
24
22
import requests
34
32
from calib_settings_widget import CalibSettingsWidget
35
33
from utils .misc_utils import EnsurePath , is_nt , bg_color_highlight , bg_color_clear
36
34
from lang_manager import LocaleStringManager as lang
35
+ from logger import setup_logging
37
36
38
37
winmm = None
39
38
62
61
page_url = "https://github.com/SummerSigh/ProjectBabble/releases/latest"
63
62
appversion = "Babble v2.1.0 Beta"
64
63
65
- def setupLogging ():
66
- # Determine the user's Documents directory
67
- documents_dir = os .path .join (os .path .expanduser ("~" ), "Documents" )
68
- log_dir = os .path .join (documents_dir , "ProjectBabble" )
69
- os .makedirs (log_dir , exist_ok = True )
70
-
71
- log_file = os .path .join (log_dir , "latest.log" )
72
-
73
- # Set up logging
74
- logger = logging .getLogger ("debug_logger" )
75
- logger .setLevel (logging .DEBUG )
76
-
77
- # File handler for logging to file
78
- file_handler = logging .FileHandler (log_file , mode = 'w' , encoding = 'utf-8' )
79
- file_handler .setLevel (logging .DEBUG )
80
- formatter = logging .Formatter ('%(asctime)s - %(message)s' , datefmt = '%Y-%m-%d %H:%M:%S' )
81
- file_handler .setFormatter (formatter )
82
-
83
- logger .addHandler (file_handler )
84
-
85
- # Optionally output to console as well
86
- console_handler = logging .StreamHandler (sys .stdout )
87
- console_handler .setLevel (logging .DEBUG )
88
- console_handler .setFormatter (formatter )
89
- logger .addHandler (console_handler )
90
-
91
- # Redirect stdout and stderr to logger
92
- class StreamToLogger :
93
- def __init__ (self , stream , log_level ):
94
- self .stream = stream
95
- self .log_level = log_level
96
-
97
- def write (self , message ):
98
- if message .strip ():
99
- logger .log (self .log_level , message .strip ())
100
- self .stream .write (message )
101
- self .stream .flush ()
102
-
103
- def flush (self ):
104
- self .stream .flush ()
105
-
106
- sys .stdout = StreamToLogger (sys .stdout , logging .INFO )
107
- sys .stderr = StreamToLogger (sys .stderr , logging .ERROR )
108
-
109
64
def timerResolution (toggle ):
110
65
if winmm != None :
111
66
if toggle :
@@ -118,7 +73,7 @@ def timerResolution(toggle):
118
73
119
74
def main ():
120
75
EnsurePath ()
121
- setupLogging ()
76
+ setup_logging ()
122
77
123
78
# Get Configuration
124
79
config : BabbleConfig = BabbleConfig .load ()
0 commit comments