luci-app: update abstract-log.js, log.js

This commit is contained in:
gSpot
2023-11-01 19:48:59 +03:00
parent 73b48cf71e
commit 214aa4547b
6 changed files with 270 additions and 120 deletions
@@ -15,35 +15,35 @@ return abc.view.extend({
entriesHandler : null,
// logd
logdHandler: function(strArray, lineNum) {
logdHandler(strArray, lineNum) {
let logLevel = strArray[5].split('.');
return [
lineNum, // # (Number)
strArray.slice(0, 5).join(' '), // Timestamp (String)
null, // Host (String)
logLevel[1], // Level (String)
logLevel[0], // Facility (String)
logLevel[1], // Level (String)
this.htmlEntities(strArray.slice(6).join(' ')), // Message (String)
];
},
// syslog-ng
syslog_ngHandler: function(strArray, lineNum) {
syslog_ngHandler(strArray, lineNum) {
if(!(strArray[3] in this.logHosts)) {
this.logHosts[strArray[3]] = this.makelogHostsDropdownItem(strArray[3]);
this.logHosts[strArray[3]] = this.makeLogHostsDropdownItem(strArray[3]);
};
return [
lineNum, // # (Number)
strArray.slice(0, 3).join(' '), // Timestamp (String)
strArray[3], // Host (String)
null, // Level (String)
null, // Facility (String)
null, // Level (String)
this.htmlEntities(strArray.slice(4).join(' ')), // Message (String)
];
},
getLogData: function(tail) {
getLogData(tail) {
return Promise.all([
L.resolveDefault(fs.stat('/sbin/logread'), null),
L.resolveDefault(fs.stat('/usr/sbin/logread'), null),
@@ -51,7 +51,7 @@ return abc.view.extend({
let logger = (stat[0]) ? stat[0].path : (stat[1]) ? stat[1].path : null;
if(logger) {
return fs.exec_direct(logger, [ '-e', tools.appName + ':' ]).catch(err => {
return fs.exec_direct(logger, [ '-e', tools.appName + ':' ], 'text').catch(err => {
ui.addNotification(
null, E('p', {}, _('Unable to load log data:') + ' ' + err.message));
return '';
@@ -60,12 +60,13 @@ return abc.view.extend({
});
},
parseLogData: function(logdata, tail) {
parseLogData(logdata, tail) {
if(!logdata) {
return [];
};
let strings = logdata.trim().split(/\n/);
let unsupportedLog = false;
let strings = logdata.trim().split(/\n/);
if(tail && tail > 0 && strings) {
strings = strings.slice(-tail);
@@ -73,21 +74,32 @@ return abc.view.extend({
this.totalLogLines = strings.length;
let entriesArray = strings.map((e, i) => {
let strArray = e.split(/\s+/);
let entriesArray = strings.map((e, i) => {
let strArray = e.split(/\s+/);
if(!this.isLoggerChecked) {
/**
* Checking the fourth field of a line.
* If it contains time then logd.
*/
if(this.testRegexp.test(strArray[3])) {
this.isFacilities = true;
this.isLevels = true;
this.logHosts = {};
this.entriesHandler = this.logdHandler;
}
/**
* Checking the third field of a line.
* If it contains time then syslog-ng.
*/
if(this.testRegexp.test(strArray[2])) {
else if(this.testRegexp.test(strArray[2])) {
this.isHosts = true;
this.logFacilities = {};
this.logLevels = {};
this.entriesHandler = this.syslog_ngHandler;
} else {
this.isLevels = true;
this.entriesHandler = this.logdHandler;
unsupportedLog = true;
return;
};
this.isLoggerChecked = true;
};
@@ -95,10 +107,18 @@ return abc.view.extend({
return this.entriesHandler(strArray, i + 1);
});
if(this.logSortingValue === 'desc') {
entriesArray.reverse();
};
if(unsupportedLog) {
ui.addNotification(
null,
E('p', {}, _('Unable to load log data:') + ' ' + _('Unsupported log format'))
);
return [];
} else {
if(this.logSortingValue === 'desc') {
entriesArray.reverse();
};
return entriesArray;
return entriesArray;
};
},
});