Browse Source

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
doc-issue-template
MrS0m30n3 10 years ago
parent
commit
0c81f9b6ef
2 changed files with 20 additions and 20 deletions
  1. 36
      youtube_dl_gui/LogManager.py
  2. 4
      youtube_dl_gui/OptionsFrame.py

36
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
)

4
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. '''

Loading…
Cancel
Save