mirror of
https://github.com/rembo10/headphones.git
synced 2026-07-20 16:03:59 +01:00
Fixed bug with log page not displaying if non-utf8 characters
This commit is contained in:
+1
-1
@@ -190,7 +190,7 @@ table#log_table { background-color: white; }
|
|||||||
|
|
||||||
table#log_table th#timestamp { text-align: left; min-width: 165px; }
|
table#log_table th#timestamp { text-align: left; min-width: 165px; }
|
||||||
table#log_table th#level { text-align: left; min-width: 75px; }
|
table#log_table th#level { text-align: left; min-width: 75px; }
|
||||||
table#log_table th#message { text-align: left; min-width: 200px; }
|
table#log_table th#message { text-align: left; min-width: 500px; }
|
||||||
|
|
||||||
table#upcoming_table th#albumart { text-align: center; min-width: 50px; }
|
table#upcoming_table th#albumart { text-align: center; min-width: 50px; }
|
||||||
table#upcoming_table th#albumname { text-align: center; min-width: 200px; }
|
table#upcoming_table th#albumname { text-align: center; min-width: 200px; }
|
||||||
|
|||||||
@@ -15,23 +15,18 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
%for line in lineList:
|
%for line in lineList:
|
||||||
<%
|
<%
|
||||||
out_tuple = helpers.extract_logline(line)
|
timestamp, message, level, threadname = line
|
||||||
|
|
||||||
|
if level == 'WARNING' or level == 'ERROR':
|
||||||
|
grade = 'X'
|
||||||
|
else:
|
||||||
|
grade = 'Z'
|
||||||
%>
|
%>
|
||||||
%if out_tuple:
|
|
||||||
<%
|
|
||||||
if out_tuple[1] == 'DEBUG':
|
|
||||||
continue
|
|
||||||
elif out_tuple[1] == 'WARNING' or out_tuple[1] == 'ERROR':
|
|
||||||
grade = 'X'
|
|
||||||
else:
|
|
||||||
grade = 'Z'
|
|
||||||
%>
|
|
||||||
<tr class="grade${grade}">
|
<tr class="grade${grade}">
|
||||||
<td id="timestamp">${out_tuple[0]}</td>
|
<td id="timestamp">${timestamp}</td>
|
||||||
<td id="level">${out_tuple[1]}</td>
|
<td id="level">${level}</td>
|
||||||
<td id="message">${out_tuple[3].decode('utf-8')}</td>
|
<td id="message">${message}</td>
|
||||||
</tr>
|
</tr>
|
||||||
%endif
|
|
||||||
%endfor
|
%endfor
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ CFG = None
|
|||||||
DB_FILE = None
|
DB_FILE = None
|
||||||
|
|
||||||
LOG_DIR = None
|
LOG_DIR = None
|
||||||
|
LOG_LIST = []
|
||||||
|
|
||||||
CACHE_DIR = None
|
CACHE_DIR = None
|
||||||
|
|
||||||
HTTP_PORT = None
|
HTTP_PORT = None
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import re
|
|||||||
|
|
||||||
import headphones
|
import headphones
|
||||||
|
|
||||||
from headphones import logger
|
|
||||||
|
|
||||||
def multikeysort(items, columns):
|
def multikeysort(items, columns):
|
||||||
|
|
||||||
comparers = [ ((itemgetter(col[1:].strip()), -1) if col.startswith('-') else (itemgetter(col.strip()), 1)) for col in columns]
|
comparers = [ ((itemgetter(col[1:].strip()), -1) if col.startswith('-') else (itemgetter(col.strip()), 1)) for col in columns]
|
||||||
@@ -91,6 +89,10 @@ def today():
|
|||||||
yyyymmdd = datetime.date.isoformat(today)
|
yyyymmdd = datetime.date.isoformat(today)
|
||||||
return yyyymmdd
|
return yyyymmdd
|
||||||
|
|
||||||
|
def now():
|
||||||
|
now = datetime.datetime.now()
|
||||||
|
return now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
def bytes_to_mb(bytes):
|
def bytes_to_mb(bytes):
|
||||||
|
|
||||||
mb = int(bytes)/1048576
|
mb = int(bytes)/1048576
|
||||||
@@ -103,6 +105,9 @@ def replace_all(text, dic):
|
|||||||
return text
|
return text
|
||||||
|
|
||||||
def extract_data(s):
|
def extract_data(s):
|
||||||
|
|
||||||
|
from headphones import logger
|
||||||
|
|
||||||
#headphones default format
|
#headphones default format
|
||||||
pattern = re.compile(r'(?P<name>.*?)\s\-\s(?P<album>.*?)\s\[(?P<year>.*?)\]', re.VERBOSE)
|
pattern = re.compile(r'(?P<name>.*?)\s\-\s(?P<album>.*?)\s\[(?P<year>.*?)\]', re.VERBOSE)
|
||||||
match = pattern.match(s)
|
match = pattern.match(s)
|
||||||
|
|||||||
+14
-10
@@ -4,6 +4,7 @@ import logging
|
|||||||
from logging import handlers
|
from logging import handlers
|
||||||
|
|
||||||
import headphones
|
import headphones
|
||||||
|
from headphones import helpers
|
||||||
|
|
||||||
MAX_SIZE = 1000000 # 1mb
|
MAX_SIZE = 1000000 # 1mb
|
||||||
MAX_FILES = 5
|
MAX_FILES = 5
|
||||||
@@ -45,33 +46,36 @@ class RotatingLogger(object):
|
|||||||
l.addHandler(consolehandler)
|
l.addHandler(consolehandler)
|
||||||
|
|
||||||
def log(self, message, level):
|
def log(self, message, level):
|
||||||
|
|
||||||
logger = logging.getLogger('headphones')
|
logger = logging.getLogger('headphones')
|
||||||
|
|
||||||
threadname = threading.currentThread().getName()
|
threadname = threading.currentThread().getName()
|
||||||
message = threadname + ' : ' + message
|
|
||||||
|
|
||||||
if level == 'debug':
|
if level != 'DEBUG':
|
||||||
|
headphones.LOG_LIST.insert(0, (helpers.now(), message, level, threadname))
|
||||||
|
|
||||||
|
message = threadname + ' : ' + message
|
||||||
|
|
||||||
|
if level == 'DEBUG':
|
||||||
logger.debug(message)
|
logger.debug(message)
|
||||||
elif level == 'info':
|
elif level == 'INFO':
|
||||||
logger.info(message)
|
logger.info(message)
|
||||||
elif level == 'warn':
|
elif level == 'WARN':
|
||||||
logger.warn(message)
|
logger.warn(message)
|
||||||
else:
|
else:
|
||||||
logger.error(message)
|
logger.error(message)
|
||||||
|
|
||||||
|
|
||||||
headphones_log = RotatingLogger('headphones.log', MAX_SIZE, MAX_FILES)
|
headphones_log = RotatingLogger('headphones.log', MAX_SIZE, MAX_FILES)
|
||||||
|
|
||||||
def debug(message):
|
def debug(message):
|
||||||
headphones_log.log(message, level='debug')
|
headphones_log.log(message, level='DEBUG')
|
||||||
|
|
||||||
def info(message):
|
def info(message):
|
||||||
headphones_log.log(message, level='info')
|
headphones_log.log(message, level='INFO')
|
||||||
|
|
||||||
def warn(message):
|
def warn(message):
|
||||||
headphones_log.log(message, level='warn')
|
headphones_log.log(message, level='WARN')
|
||||||
|
|
||||||
def error(message):
|
def error(message):
|
||||||
headphones_log.log(message, level='error')
|
headphones_log.log(message, level='ERROR')
|
||||||
|
|
||||||
|
|||||||
@@ -231,13 +231,7 @@ class WebInterface(object):
|
|||||||
history.exposed = True
|
history.exposed = True
|
||||||
|
|
||||||
def logs(self):
|
def logs(self):
|
||||||
log_file = os.path.join(headphones.LOG_DIR, 'headphones.log')
|
return serve_template(templatename="logs.html", title="Log", lineList=headphones.LOG_LIST)
|
||||||
if os.path.isfile(log_file):
|
|
||||||
fileHandle = open(log_file)
|
|
||||||
lineList = fileHandle.readlines()
|
|
||||||
fileHandle.close()
|
|
||||||
lineList.reverse()
|
|
||||||
return serve_template(templatename="logs.html", title="Log", lineList=lineList[0:500])
|
|
||||||
logs.exposed = True
|
logs.exposed = True
|
||||||
|
|
||||||
def clearhistory(self, type=None):
|
def clearhistory(self, type=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user