Logs return list
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from couchpotato.api import addApiView
|
from couchpotato.api import addApiView
|
||||||
from couchpotato.core.helpers.encoding import toUnicode
|
from couchpotato.core.helpers.encoding import toUnicode
|
||||||
from couchpotato.core.helpers.variable import tryInt
|
from couchpotato.core.helpers.variable import tryInt, splitString
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.plugins.base import Plugin
|
from couchpotato.core.plugins.base import Plugin
|
||||||
from couchpotato.environment import Env
|
from couchpotato.environment import Env
|
||||||
@@ -71,10 +72,11 @@ class Logging(Plugin):
|
|||||||
if current_path:
|
if current_path:
|
||||||
f = open(current_path, 'r')
|
f = open(current_path, 'r')
|
||||||
log_content = f.read()
|
log_content = f.read()
|
||||||
|
logs = self.toList(log_content)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'success': True,
|
'success': True,
|
||||||
'log': toUnicode(log_content),
|
'log': logs,
|
||||||
'total': total,
|
'total': total,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,13 +95,14 @@ class Logging(Plugin):
|
|||||||
break
|
break
|
||||||
|
|
||||||
f = open(path, 'r')
|
f = open(path, 'r')
|
||||||
reversed_lines = toUnicode(f.read()).split('[0m\n')
|
log_content = toUnicode(f.read())
|
||||||
reversed_lines.reverse()
|
raw_lines = self.toList(log_content)
|
||||||
|
raw_lines.reverse()
|
||||||
|
|
||||||
brk = False
|
brk = False
|
||||||
for line in reversed_lines:
|
for line in raw_lines:
|
||||||
|
|
||||||
if type == 'all' or '%s ' % type.upper() in line:
|
if type == 'all' or line.get('type') == type.upper():
|
||||||
log_lines.append(line)
|
log_lines.append(line)
|
||||||
|
|
||||||
if len(log_lines) >= total_lines:
|
if len(log_lines) >= total_lines:
|
||||||
@@ -112,9 +115,35 @@ class Logging(Plugin):
|
|||||||
log_lines.reverse()
|
log_lines.reverse()
|
||||||
return {
|
return {
|
||||||
'success': True,
|
'success': True,
|
||||||
'log': '[0m\n'.join(log_lines),
|
'log': log_lines,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def toList(self, log_content = ''):
|
||||||
|
|
||||||
|
logs_raw = toUnicode(log_content).split('[0m\n')
|
||||||
|
|
||||||
|
logs = []
|
||||||
|
for log in logs_raw:
|
||||||
|
split = splitString(log, '\x1b')
|
||||||
|
if split:
|
||||||
|
try:
|
||||||
|
date, time, log_type = splitString(split[0], ' ')
|
||||||
|
timestamp = '%s %s' % (date, time)
|
||||||
|
except:
|
||||||
|
timestamp = 'UNKNOWN'
|
||||||
|
log_type = 'UNKNOWN'
|
||||||
|
|
||||||
|
message = ''.join(split[1]) if len(split) > 1 else split[0]
|
||||||
|
message = re.sub('\[\d+m\[', '[', message)
|
||||||
|
|
||||||
|
logs.append({
|
||||||
|
'time': timestamp,
|
||||||
|
'type': log_type,
|
||||||
|
'message': message
|
||||||
|
})
|
||||||
|
|
||||||
|
return logs
|
||||||
|
|
||||||
def clear(self, **kwargs):
|
def clear(self, **kwargs):
|
||||||
|
|
||||||
for x in range(0, 50):
|
for x in range(0, 50):
|
||||||
|
|||||||
Reference in New Issue
Block a user