⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_log_config.pl

📁 Unix下基于Web的管理工具
💻 PL
字号:
# mod_log_config.pl# Defines editors for loggingsub mod_log_config_directives{$rv = [ [ 'LogFormat', 1, 3, 'virtual', 1.2 ],        [ 'TransferLog CustomLog', 1, 3, 'virtual', 1.2 ] ];return &make_directives($rv, $_[0], "mod_log_config");}sub edit_LogFormat{if ($_[1]->{'version'} >= 1.3) {	local($i, $v, $deffmt, @nick, @fmt, $rv);	for($i=0; $_[0]->[$i]; $i++) {		$vv = $_[0]->[$i]->{'words'};		if ($vv->[1]) {			push(@nick, $vv->[1]); push(@fmt, $vv->[0]);			}		else { $deffmt = $vv->[0]; }		}	$rv = &opt_input($deffmt, "LogFormat", "Common Log Format", 20);	$rv .= "<br><b>Named log formats</b><br>\n";	$rv .= "<table border>\n".	       "<tr $tb> <td><b>Nickname</b></td> <td><b>Format</b></td> </tr>\n";	for($i=0; $i<=@nick; $i++) {		$rv .= "<tr $cb> <td><input name=LogFormat_nick_$i size=10 ".		       "value=\"$nick[$i]\"></td>\n";		$rv .= "<td><input name=LogFormat_fmt_$i size=40 ".		       "value='$fmt[$i]'></td> </tr>\n";		}	$rv .= "</table>\n";	return (2, "Default log format", $rv);	}else {	return (1, "Default log format",		&opt_input($_[0]->[0]->{'words'}->[0],			   "LogFormat", "Default", 25));	}}sub save_LogFormat{$in{'LogFormat'} =~ s/\"/\\\"/g;if ($_[0]->{'version'} >= 1.3) {	local(@rv, $i, $nick, $fmt);	if (!$in{'LogFormat_def'}) { push(@rv, "\"$in{'LogFormat'}\""); }	for($i=0; defined($in{"LogFormat_nick_$i"}); $i++) {		$nick = $in{"LogFormat_nick_$i"}; $fmt =$in{"LogFormat_fmt_$i"};		$fmt =~ s/\"/\\\"/g;		if ($nick !~ /\S/ && $fmt !~ /\S/) { next; }		$nick =~ /^\S+$/ || &error("'$nick' is not a valid nickname");		push(@rv, "\"$fmt\" $nick");		}	return ( \@rv );	}else {	if ($in{'LogFormat_def'}) { return ( [ ] ); }	elsif ($in{'LogFormat'} =~ /^\S+$/) { return ( [ $in{'LogFormat'} ] ); }	else { return ( [ "\"$in{'LogFormat'}\"" ] ); }	}}sub edit_TransferLog_CustomLog{local($rv, @all, $d, $i, $format, $dest);$rv = "<table border>\n".      "<tr $tb> <td><b>Format</b></td> <td><b>Write to</b></td> ".      "<td><b>File or program</b></td> ";if ($_[2]->{'version'} >= 1.35) {	$rv .= "<td><b>If set</b></td> ";	}$rv .= "</tr>\n";@all = (@{$_[0]}, @{$_[1]});for($i=0; $i<=@all; $i++) {	$d = $all[$i];	if (!$d) { $format = ""; $dest = ""; }	elsif ($d->{'name'} eq "CustomLog") {		$format = $d->{'words'}->[1];		$dest = $d->{'words'}->[0];		}	else { $format = ""; $dest = $d->{'value'}; }	$rv .= "<tr $cb>\n";	$rv .= "<td><input type=radio name=Log_def_$i value=1 ".              ($format ? "" : "checked")."> Default&nbsp;\n";	$rv .= "<input type=radio name=Log_def_$i value=0 ".	       ($format ? "checked" : "")."> <input name=Log_cust_$i size=15 ".	       "value='$format'></td>\n";	$rv .= "<td><input type=radio name=Log_prog_$i value=0 ".	       ($dest =~ /^\|/ ? "" : "checked")."> File..&nbsp;\n";	$rv .= "<input type=radio name=Log_prog_$i value=1 ".	       ($dest =~ /^\|/ ? "checked" : "")."> Program..</td>\n";	$dest =~ s/^\|//g;	$rv .= "<td><input name=Log_dest_$i size=20 value=\"$dest\"></td>\n";	if ($_[2]->{'version'} >= 1.35) {		local $ev = $d->{'words'}->[2] =~ /^env=(.*)$/ ? $1 : "";		$rv .= "<td><input name=Log_env_$i size=8 value=\"$ev\"></td>";		}	$rv .= "</tr>\n";	}$rv .= "</table>\n";return (2, "Access log files", $rv);}sub save_TransferLog_CustomLog{local($i, $def, $cust, $prog, $dest, $fileprog, @tl, @cl);for($i=0; defined($in{"Log_dest_$i"}); $i++) {	$def = $in{"Log_def_$i"}; $cust = $in{"Log_cust_$i"};	$prog = $in{"Log_prog_$i"}; $dest = $in{"Log_dest_$i"};	$env = $in{"Log_env_$i"};	$cust =~ s/\"/\\\"/g;	if ($cust !~ /\S/ && $dest !~ /\S/) { next; }	if (!$def && $cust !~ /\S/) { &error("No log format given for $dest"); }	if ($dest !~ /\S/) { &error("Missing log filename or program"); }	&allowed_auth_file($dest) ||		&error("'$dest' is not an allowed log filename or program");	$fileprog = !$prog ? $dest :		     $dest =~ /^\S+$/ ? $dest : "\"|$dest\"";	if ($def) {		if ($env) { &error("'If set' option cannot be used with ",				   "the default log format"); }		push(@tl, "$fileprog");		}	else {		if ($env) { push(@cl, "$fileprog \"$cust\" env=$env"); }		else { push(@cl, "$fileprog \"$cust\""); }		}	}return ( \@tl, \@cl );}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -