@@ -60,6 +60,7 @@ def __init__(self, window: Tk) -> None:
60
60
self .config_parser : configparser .ConfigParser = configparser .ConfigParser ()
61
61
self .create_config (new = True ) if not os .path .isfile ('NSE-OCA.ini' ) else None
62
62
self .get_config ()
63
+ self .log_file : Optional [TextIO ] = None
63
64
self .log () if self .logging else None
64
65
self .units_str : str = 'in K' if self .option_mode == 'Index' else 'in 10s'
65
66
self .output_columns : Tuple [str , str , str , str , str , str , str , str , str ] = (
@@ -733,8 +734,15 @@ def toggle_updates(self, event: Optional[Event] = None) -> None:
733
734
# noinspection PyUnusedLocal
734
735
def log (self , event : Optional [Event ] = None ) -> None :
735
736
if self .first_run and self .logging or not self .logging :
736
- streamtologger .redirect (target = "NSE-OCA.log" ,
737
- header_format = "[{timestamp:%Y-%m-%d %H:%M:%S} - {level:5}] " )
737
+ try :
738
+ # noinspection PyProtectedMember,PyUnresolvedReferences
739
+ base_path : str = sys ._MEIPASS
740
+ self .log_file = open ('NSE-OCA.log' , 'a' , buffering = 1 )
741
+ sys .stdout = self .log_file
742
+ sys .stderr = self .log_file
743
+ except AttributeError :
744
+ streamtologger .redirect (target = "NSE-OCA.log" ,
745
+ header_format = "[{timestamp:%Y-%m-%d %H:%M:%S} - {level:5}] " )
738
746
self .logging = True
739
747
print ('----------Logging Started----------' )
740
748
@@ -757,7 +765,12 @@ def log(self, event: Optional[Event] = None) -> None:
757
765
print ('----------Logging Stopped----------' )
758
766
sys .stdout = self .stdout
759
767
sys .stderr = self .stderr
760
- streamtologger ._is_redirected = False
768
+ try :
769
+ # noinspection PyProtectedMember,PyUnresolvedReferences
770
+ base_path : str = sys ._MEIPASS
771
+ self .log_file .close ()
772
+ except AttributeError :
773
+ streamtologger ._is_redirected = False
761
774
self .logging = False
762
775
self .options .entryconfig (self .options .index (9 ), label = "Debug Logging: Off" )
763
776
messagebox .showinfo (title = "Debug Logging Disabled" , message = "Errors will not be logged." )
0 commit comments