diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php
index 81017909b..4be2008c6 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php
@@ -81,7 +81,7 @@ class LogController extends ApiControllerBase
$this->response->setRawHeader("Content-Type: text/csv");
$this->response->setRawHeader("Content-Disposition: attachment; filename=" . $scope . ".log");
foreach (json_decode($response, true)['rows'] as $row) {
- printf("%s\t%s\n", $row['timestamp'], $row['line']);
+ printf("%s\t%s\t%s\n", $row['timestamp'], $row['process_name'], $row['line']);
}
return;
}
diff --git a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt
index cc9de35ed..c08064da6 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt
@@ -78,6 +78,7 @@
| # |
{{ lang._('Date') }} |
+ {{ lang._('Process') }} |
{{ lang._('Line') }} |
diff --git a/src/opnsense/scripts/systemhealth/logformats/__init__.py b/src/opnsense/scripts/systemhealth/logformats/__init__.py
index bda4c17c6..00846e671 100755
--- a/src/opnsense/scripts/systemhealth/logformats/__init__.py
+++ b/src/opnsense/scripts/systemhealth/logformats/__init__.py
@@ -63,6 +63,12 @@ class BaseLogFormat:
"""
return line
+ @staticmethod
+ def process_name(line):
+ """ Return process name
+ """
+ return ""
+
class FormatContainer:
def __init__(self, filename):
diff --git a/src/opnsense/scripts/systemhealth/logformats/syslog.py b/src/opnsense/scripts/systemhealth/logformats/syslog.py
index 02243015b..1ee59a455 100755
--- a/src/opnsense/scripts/systemhealth/logformats/syslog.py
+++ b/src/opnsense/scripts/systemhealth/logformats/syslog.py
@@ -48,10 +48,16 @@ class SysLogFormat(BaseLogFormat):
@staticmethod
def line(line):
- # strip timestamp from log line
+ # parse [date] [hostname] [process_name] [line] format
response = line[16:]
- # strip hostname from log line
- return response[response.find(' ')+1:].strip()
+ tmp = response.find(':')
+ return response[tmp+1:].strip() if tmp > -1 else response[response.find(' ')+1:].strip()
+
+ @staticmethod
+ def process_name(line):
+ response = line[16:]
+ tmp = response.find(':')
+ return response[:tmp].strip().split()[-1] if tmp > -1 else ""
class SysLogFormatEpoch(BaseLogFormat):
diff --git a/src/opnsense/scripts/systemhealth/queryLog.py b/src/opnsense/scripts/systemhealth/queryLog.py
index 329305faa..75825216c 100755
--- a/src/opnsense/scripts/systemhealth/queryLog.py
+++ b/src/opnsense/scripts/systemhealth/queryLog.py
@@ -88,22 +88,28 @@ if __name__ == '__main__':
filename = fetch_clog(log_filename)
except Exception as e:
filename = log_filename
- for record in reverse_log_reader(filename):
- if record['line'] != "" and filter_regexp.match(('%s' % record['line']).lower()):
+ for rec in reverse_log_reader(filename):
+ if rec['line'] != "" and filter_regexp.match(('%s' % rec['line']).lower()):
result['total_rows'] += 1
if (len(result['rows']) < limit or limit == 0) and result['total_rows'] >= offset:
- record['timestamp'] = None
- record['parser'] = None
- frmt = format_container.get_format(record['line'])
+ record = {
+ 'timestamp': None,
+ 'parser': None,
+ 'process_name': ''
+ }
+ frmt = format_container.get_format(rec['line'])
if frmt:
- record['timestamp'] = frmt.timestamp(record['line'])
- record['line'] = frmt.line(record['line'])
+ record['timestamp'] = frmt.timestamp(rec['line'])
+ record['process_name'] = frmt.process_name(rec['line'])
+ record['line'] = frmt.line(rec['line'])
record['parser'] = frmt.name
+ else:
+ record['line'] = rec['line']
result['rows'].append(record)
- elif result['total_rows'] > offset + limit:
+ elif limit > 0 and result['total_rows'] > offset + limit:
# do not fetch data until end of file...
break
- if result['total_rows'] > offset + limit:
+ if limit > 0 and result['total_rows'] > offset + limit:
break
# output results