Я пытаюсь записать файл журнала и, для текущей отладки, тоже записать журнал в консоль. К моему удивлению, у меня странный вывод как в консоли, так и в файле
Вот код:
#in a method in a subclass of ScreenListener
def updateVisible(self):
if all([section['isOK'] for section in self.status_dict.values()]):
self.config(state = "normal", text = 'Start', relief = RAISED, command=self.monitorROI)
else:
self.config(state = "disabled", text = 'Stop', relief = SUNKEN)
def stopMonitoring(self):
logger.info('Monitoring stopped')
self.config(state="normal", text='Start', relief=RAISED, command=self.monitorROI)
if self.halarm is not None:
self.after_cancel(self.halarm)
self.halarm = None
def monitorROI(self):
logger.info('Monitoring started')
self.config(state="normal", text='Started', relief=SUNKEN, command=self.stopMonitoring)
self.halarm = self.after(100, self.getColorDiff)
def main():
tk_root = Tk()
listener_gui = ScreenListener(tk_root)
tk_root.mainloop()
if __name__ == '__main__':
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
curr_dir = os.path.dirname(os.path.realpath(__file__))
log_fpath = "{}/screen_listener.log".format(curr_dir)
lfh = logging.FileHandler(log_fpath)
lfh.setLevel(logging.INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter(fmt='%(asctime)s.%(msecs)03d : %(message)s',datefmt='%d.%m.%Y,%H:%M:%S')
lfh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.addHandler(lfh)
main()
Вот вывод
Консоль (дубликаты)
05.06.2019,03:47:09.185 :
05.06.2019,03:47:09.185 : Monitoring started
05.06.2019,03:47:24.670 :
05.06.2019,03:47:24.670 : Sending command
Файл журнала (квадр)
05.06.2019,03:47:09.185 :
05.06.2019,03:47:09.185 :
05.06.2019,03:47:09.185 :
05.06.2019,03:47:09.185 : Monitoring started
05.06.2019,03:47:24.670 :
05.06.2019,03:47:24.670 :
05.06.2019,03:47:24.670 :
05.06.2019,03:47:24.670 : Sending command
Не могли бы вы подсказать, в чем причина?