mirror of
https://github.com/webmin/webmin.git
synced 2026-08-30 10:20:26 +01:00
This PR adds a "Binary Logging" page to configure log format, file size and retention, rotate or purge logs, and support restore sessions that do not write back to binary logs.
121 lines
3.5 KiB
Perl
Executable File
121 lines
3.5 KiB
Perl
Executable File
# log_parser.pl
|
|
# Functions for parsing this module's logs
|
|
|
|
do 'mysql-lib.pl';
|
|
|
|
# parse_webmin_log(user, script, action, type, object, ¶ms)
|
|
# Converts logged information from this module into human-readable form
|
|
sub parse_webmin_log
|
|
{
|
|
local ($user, $script, $action, $type, $object, $p, $long) = @_;
|
|
if ($action eq 'stop') {
|
|
return $text{'log_stop'};
|
|
}
|
|
elsif ($action eq 'start') {
|
|
return $text{'log_start'};
|
|
}
|
|
elsif ($action eq 'restart') {
|
|
return $text{'log_restart'};
|
|
}
|
|
elsif ($action eq 'cnf') {
|
|
return $text{'log_cnf'};
|
|
}
|
|
elsif ($action eq 'binlogs') {
|
|
return $text{'log_binlogs'};
|
|
}
|
|
elsif ($action eq 'purgebinlogs') {
|
|
return $text{'log_purgebinlogs'};
|
|
}
|
|
elsif ($action eq 'flushbinlogs') {
|
|
return $text{'log_flushbinlogs'};
|
|
}
|
|
elsif ($action eq 'ssl') {
|
|
return $text{'log_ssl'};
|
|
}
|
|
elsif ($action eq 'genssl') {
|
|
return $text{'log_genssl'};
|
|
}
|
|
elsif ($action eq 'kill') {
|
|
return &text('log_kill', $object);
|
|
}
|
|
elsif ($action eq 'vars') {
|
|
return &text('log_vars', $object);
|
|
}
|
|
elsif ($type eq 'db') {
|
|
return &text("log_${type}_${action}", "<tt>$object</tt>");
|
|
}
|
|
elsif ($type eq 'dbs' || $type eq 'users' || $type eq 'hosts' ||
|
|
$type eq 'cprivs' || $type eq 'tprivs' || $type eq 'dbprivs') {
|
|
return &text("log_${type}_${action}", $object);
|
|
}
|
|
elsif ($type eq 'table' || $type eq 'index' || $type eq 'view') {
|
|
return &text("log_${type}_${action}", "<tt>$object</tt>",
|
|
"<tt>$p->{'db'}</tt>");
|
|
}
|
|
elsif ($type eq 'tables') {
|
|
return &text("log_${type}_${action}", $object,
|
|
"<tt>$p->{'db'}</tt>");
|
|
}
|
|
elsif ($type eq 'field') {
|
|
$p->{'size'} =~ s/\s+$//;
|
|
return &text("log_${type}_${action}", "<tt>$object</tt>",
|
|
"<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>",
|
|
"<tt>$p->{'type'}$p->{'size'}</tt>");
|
|
}
|
|
elsif ($type eq 'fields') {
|
|
return &text("log_${type}_${action}", $object,
|
|
"<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>");
|
|
}
|
|
elsif ($type eq 'data') {
|
|
return &text("log_${type}_${action}", "<tt>$object</tt>",
|
|
"<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>");
|
|
}
|
|
elsif ($action eq 'exec') {
|
|
return &text($long ? 'log_exec_l' : 'log_exec', "<tt>$object</tt>",
|
|
"<tt>".&html_escape($p->{'cmd'})."</tt>");
|
|
}
|
|
elsif ($type eq 'user' || $type eq 'perm' || $type eq 'host' ||
|
|
$type eq 'tpriv' || $type eq 'cpriv') {
|
|
$p->{'user'} = $text{'log_anon'}
|
|
if ($p->{'user'} eq '-' || $p->{'user'} eq '%');
|
|
$p->{'db'} = $text{'log_any'}
|
|
if ($p->{'db'} eq '-' || $p->{'db'} eq '%');
|
|
$p->{'host'} = $text{'log_any'}
|
|
if ($p->{'host'} eq '-' || $p->{'host'} eq '%' ||
|
|
$p->{'host'} eq '');
|
|
local $t = "log_${type}_${action}";
|
|
if ($long && $text{$t.'_l'}) { $t .= '_l'; }
|
|
return &text($t, "<tt>$p->{'user'}</tt>",
|
|
"<tt>$p->{'host'}</tt>", "<tt>$p->{'db'}</tt>",
|
|
"<tt>$p->{'table'}</tt>", "<tt>$p->{'field'}</tt>");
|
|
}
|
|
elsif ($action eq 'backup') {
|
|
$object = "" if ($object eq "-");
|
|
return &text($object ? ($long ? 'log_backup_l' : 'log_backup')
|
|
: ($long ? 'log_backup_all_l' : 'log_backup_all'),
|
|
"<tt>$object</tt>",
|
|
"<tt>".&html_escape($p->{'file'})."</tt>");
|
|
}
|
|
elsif ($action eq 'execfile') {
|
|
return &text($p->{'mode'} ? 'log_execupload' : 'log_execfile',
|
|
"<tt>".&html_escape($p->{'file'})."</tt>");
|
|
}
|
|
elsif ($action eq 'import') {
|
|
return &text($p->{'mode'} ? 'log_importupload' : 'log_importfile',
|
|
"<tt>".&html_escape($p->{'file'})."</tt>");
|
|
}
|
|
elsif ($action eq 'set') {
|
|
return &text('log_set', $object);
|
|
}
|
|
elsif ($action eq 'root') {
|
|
return $text{'log_root'};
|
|
}
|
|
elsif ($action eq 'manual') {
|
|
return $text{'log_manual'};
|
|
}
|
|
else {
|
|
return undef;
|
|
}
|
|
}
|
|
|