mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge pull request #716 from YunoHost/improve-log-list
Add a --with-details option for log list
This commit is contained in:
commit
a6ac514202
2 changed files with 30 additions and 3 deletions
|
@ -1802,6 +1802,10 @@ log:
|
||||||
full: --limit
|
full: --limit
|
||||||
help: Maximum number of logs
|
help: Maximum number of logs
|
||||||
type: int
|
type: int
|
||||||
|
-d:
|
||||||
|
full: --with-details
|
||||||
|
help: Show additional infos (e.g. operation success) but may significantly increase command time. Consider using --limit in combination with this.
|
||||||
|
action: store_true
|
||||||
|
|
||||||
### log_display()
|
### log_display()
|
||||||
display:
|
display:
|
||||||
|
|
|
@ -47,12 +47,13 @@ RELATED_CATEGORIES = ['app', 'domain', 'service', 'user']
|
||||||
logger = getActionLogger('yunohost.log')
|
logger = getActionLogger('yunohost.log')
|
||||||
|
|
||||||
|
|
||||||
def log_list(category=[], limit=None):
|
def log_list(category=[], limit=None, with_details=False):
|
||||||
"""
|
"""
|
||||||
List available logs
|
List available logs
|
||||||
|
|
||||||
Keyword argument:
|
Keyword argument:
|
||||||
limit -- Maximum number of logs
|
limit -- Maximum number of logs
|
||||||
|
with_details -- Include details (e.g. if the operation was a success). Likely to increase the command time as it needs to open and parse the metadata file for each log... So try to use this in combination with --limit.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
categories = category
|
categories = category
|
||||||
|
@ -69,12 +70,11 @@ def log_list(category=[], limit=None):
|
||||||
category_path = os.path.join(CATEGORIES_PATH, category)
|
category_path = os.path.join(CATEGORIES_PATH, category)
|
||||||
if not os.path.exists(category_path):
|
if not os.path.exists(category_path):
|
||||||
logger.debug(m18n.n('log_category_404', category=category))
|
logger.debug(m18n.n('log_category_404', category=category))
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logs = filter(lambda x: x.endswith(METADATA_FILE_EXT),
|
logs = filter(lambda x: x.endswith(METADATA_FILE_EXT),
|
||||||
os.listdir(category_path))
|
os.listdir(category_path))
|
||||||
logs = reversed(sorted(logs))
|
logs = list(reversed(sorted(logs)))
|
||||||
|
|
||||||
if limit is not None:
|
if limit is not None:
|
||||||
logs = logs[:limit]
|
logs = logs[:limit]
|
||||||
|
@ -100,6 +100,15 @@ def log_list(category=[], limit=None):
|
||||||
else:
|
else:
|
||||||
entry["started_at"] = log_datetime
|
entry["started_at"] = log_datetime
|
||||||
|
|
||||||
|
if with_details:
|
||||||
|
with open(md_path, "r") as md_file:
|
||||||
|
try:
|
||||||
|
metadata = yaml.safe_load(md_file)
|
||||||
|
except yaml.YAMLError:
|
||||||
|
logger.warning(m18n.n('log_corrupted_md_file', file=md_path))
|
||||||
|
|
||||||
|
entry["success"] = metadata.get("success", "?")
|
||||||
|
|
||||||
result[category].append(entry)
|
result[category].append(entry)
|
||||||
|
|
||||||
# Reverse the order of log when in cli, more comfortable to read (avoid
|
# Reverse the order of log when in cli, more comfortable to read (avoid
|
||||||
|
@ -318,6 +327,20 @@ class OperationLogger(object):
|
||||||
self.flush()
|
self.flush()
|
||||||
self._register_log()
|
self._register_log()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def md_path(self):
|
||||||
|
"""
|
||||||
|
Metadata path file
|
||||||
|
"""
|
||||||
|
return os.path.join(self.path, self.name + METADATA_FILE_EXT)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def log_path(self):
|
||||||
|
"""
|
||||||
|
Log path file
|
||||||
|
"""
|
||||||
|
return os.path.join(self.path, self.name + LOG_FILE_EXT)
|
||||||
|
|
||||||
def _register_log(self):
|
def _register_log(self):
|
||||||
"""
|
"""
|
||||||
Register log with a handler connected on log system
|
Register log with a handler connected on log system
|
||||||
|
|
Loading…
Add table
Reference in a new issue