luci-app-snmpd: add Log Settings

In this commit logging functionality is added.
It is possible to log to syslog or file.

Signed-off-by: Christian Korber <ckorber@tdt.de>
This commit is contained in:
Christian Korber
2024-07-29 13:47:35 +02:00
committed by Paul Donald
parent b232a6d76b
commit 5a5d273e1c

View File

@ -276,6 +276,67 @@ return L.view.extend({
go.rmempty = false;
},
populateLogSettings: function(tab, s) {
let g, go, o;
o = s.taboption(tab, form.SectionValue, '__log__',
form.GridSection, tab, null,
_('Here you can configure Logging settings'));
g = o.subsection;
g.anonymous = true;
g.addremove = true;
g.nodescriptions = true;
go = g.option(form.Flag, 'file',
_('Enable logging to file'));
go.default = '0';
go.rmempty = false;
go.optional = false;
go = g.option(form.Value, 'log_file',
_('Path to log file'));
go.default = '/var/log/snmpd.log';
go.rmempty = false;
go.placeholder = '/var/log/snmpd.log';
go.depends('file', '1');
go = g.option(form.ListValue, 'log_file_priority',
_('Priority for file logging'),
_('Will log messages of selected priority and above.'));
go.default = 'i';
go.value('!', 'LOG_EMERG');
go.value('a', 'LOG_ALERT');
go.value('c', 'LOG_CRIT');
go.value('e', 'LOG_ERR');
go.value('w', 'LOG_WARNING');
go.value('n', 'LOG_NOTICE');
go.value('i', 'LOG_INFO');
go.value('d', 'LOG_DEBUG');
go.depends('file', '1');
go = g.option(form.Flag, 'log_syslog',
_('Enable logging to syslog'));
go.default = '0';
go.rmempty = false;
go.optional = false;
go = g.option(form.ListValue, 'log_syslog_facility',
_('Syslog facility'));
go.default = 'd';
go.value('d', 'LOG_DAEMON');
go.value('u', 'LOG_USER');
go.value('0', 'LOG_LOCAL0');
go.value('1', 'LOG_LOCAL1');
go.value('2', 'LOG_LOCAL2');
go.value('3', 'LOG_LOCAL3');
go.value('4', 'LOG_LOCAL4');
go.value('5', 'LOG_LOCAL5');
go.value('6', 'LOG_LOCAL6');
go.value('7', 'LOG_LOCAL7');
go.depends('log_syslog', '1');
},
render: function(data) {
let m, s, o, g, go;
@ -429,6 +490,9 @@ return L.view.extend({
this.populateTrapsSettings('trap_HostIP', 'Traps via IP-Address',
s, 'HostIP');
s.tab('log', _('Logging'));
this.populateLogSettings('log', s);
return m.render();
},