From 0c81f9b6ef7f4e7be56cd5812dc7ac951f9fc6d7 Mon Sep 17 00:00:00 2001 From: MrS0m30n3 Date: Fri, 21 Nov 2014 00:06:43 +0200 Subject: [PATCH] Small refactor (LogManager.py) Also fixed a bug: When add_time was enabled clear() method would write the time on the log instead of complete removing the content --- youtube_dl_gui/LogManager.py | 36 +++++++++++++++++----------------- youtube_dl_gui/OptionsFrame.py | 4 ++-- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/youtube_dl_gui/LogManager.py b/youtube_dl_gui/LogManager.py index e23b14b..8a60663 100644 --- a/youtube_dl_gui/LogManager.py +++ b/youtube_dl_gui/LogManager.py @@ -7,15 +7,13 @@ from time import strftime import wx -from .utils import ( - check_path, - fix_path -) +from .utils import check_path class LogManager(object): ''' + OUT_OF_DATE Simple log manager for youtube-dlG. Params @@ -23,7 +21,7 @@ class LogManager(object): add_time: If True LogManager will also log the time. Accessible Methods - size() + log_size() Params: None Return: Log file size in Bytes @@ -42,17 +40,18 @@ class LogManager(object): log_file: Absolute path to log file. ''' - LOG_FILENAME = 'log' - MAX_FILESIZE = 524288 # 524288B = 512kB + LOG_FILENAME = "log" + TIME_TEMPLATE = "[{time}] {error_msg}" + MAX_LOGSIZE = 524288 # 524288B = 512kB def __init__(self, config_path, add_time=False): self.config_path = config_path self.add_time = add_time - self.log_file = fix_path(config_path) + self.LOG_FILENAME + self.log_file = os.path.join(config_path, self.LOG_FILENAME) self._init_log() self._auto_clear_log() - def size(self): + def log_size(self): ''' Return log file size in Bytes. ''' if not os.path.exists(self.log_file): return 0 @@ -71,12 +70,13 @@ class LogManager(object): ''' Write data to log file using mode. ''' check_path(self.config_path) - with open(self.log_file, mode) as log_file: - if self.add_time: - time = '[%s] ' % strftime('%c') - log_file.write(time) + with open(self.log_file, mode) as log: + if mode == 'a' and self.add_time: + msg = self.TIME_TEMPLATE.format(time=strftime('%c'), error_msg=data) + else: + msg = data - log_file.write(data) + log.write(msg) def _init_log(self): ''' Init log file if not exist. ''' @@ -85,7 +85,7 @@ class LogManager(object): def _auto_clear_log(self): ''' Auto clear log file. ''' - if self.size() > self.MAX_FILESIZE: + if self.log_size() > self.MAX_LOGSIZE: self.clear() @@ -101,16 +101,16 @@ class LogGUI(wx.Frame): Return: None ''' - TITLE = 'Log Viewer' + TITLE = "Log Viewer" + FRAME_SIZE = (650, 200) def __init__(self, parent=None): - wx.Frame.__init__(self, parent, -1, self.TITLE, size=(650, 200)) + wx.Frame.__init__(self, parent, title=self.TITLE, size=self.FRAME_SIZE) panel = wx.Panel(self) self._text_area = wx.TextCtrl( panel, - -1, style=wx.TE_MULTILINE | wx.TE_READONLY | wx.HSCROLL ) diff --git a/youtube_dl_gui/OptionsFrame.py b/youtube_dl_gui/OptionsFrame.py index 0275285..51c8559 100644 --- a/youtube_dl_gui/OptionsFrame.py +++ b/youtube_dl_gui/OptionsFrame.py @@ -225,7 +225,7 @@ class LogPanel(wx.Panel): # Create extra items if logger is not None: path_text = wx.StaticText(self, label="Path: " + self.logger.log_file) - self.log_size = wx.StaticText(self, label="Log Size %s Bytes" % self.logger.size()) + self.log_size = wx.StaticText(self, label="Log Size %s Bytes" % self.logger.log_size()) main_sizer.AddSpacer(20) main_sizer.Add(path_text, flag=wx.ALIGN_CENTER_HORIZONTAL) @@ -270,7 +270,7 @@ class LogPanel(wx.Panel): ''' Event handler for self.clear_button. ''' if self.logger is not None: self.logger.clear() - self.log_size.SetLabel("Log Size %s Bytes" % self.logger.size()) + self.log_size.SetLabel("Log Size %s Bytes" % self.logger.log_size()) def OnView(self, event): ''' Event handler for self.view_button. '''