[enh] Limit number of line per log

This commit is contained in:
ljf 2018-04-14 04:55:20 +02:00
parent bb03e90d16
commit d17193b404

View file

@ -82,12 +82,13 @@ def log_list(limit=None, full=False):
return result return result
def log_display(file_name): def log_display(file_name, number=50):
""" """
Display full log or specific logs listed Display full log or specific logs listed
Argument: Argument:
file_name file_name
number
""" """
if file_name.endswith(METADATA_FILE_EXT): if file_name.endswith(METADATA_FILE_EXT):
@ -96,6 +97,7 @@ def log_display(file_name):
base_filename = file_name[:-len(LOG_FILE_EXT)] base_filename = file_name[:-len(LOG_FILE_EXT)]
else: else:
base_filename = file_name base_filename = file_name
md_filename = base_filename + METADATA_FILE_EXT md_filename = base_filename + METADATA_FILE_EXT
md_path = os.path.join(OPERATIONS_PATH, md_filename) md_path = os.path.join(OPERATIONS_PATH, md_filename)
log_filename = base_filename + LOG_FILE_EXT log_filename = base_filename + LOG_FILE_EXT
@ -121,9 +123,9 @@ def log_display(file_name):
print(exc) print(exc)
if os.path.exists(log_path): if os.path.exists(log_path):
with open(log_path, "r") as content: from yunohost.service import _tail
logs = content.read() logs = _tail(log_path, int(number))
logs = [{"datetime": x.split(": ", 1)[0].replace("_", " "), "line": x.split(": ", 1)[1]} for x in logs.split("\n") if x] logs = [{"datetime": x.split(": ", 1)[0].replace("_", " "), "line": x.split(": ", 1)[1]} for x in logs if x]
infos['log_path'] = log_path infos['log_path'] = log_path
infos['logs'] = logs infos['logs'] = logs