package logging; use strict; require "../const.cgi"; #use const; use date; my $enabled=&const::get("enable_logging"); my $aid; sub accessID { return unless $enabled; return $aid if ($aid); $aid=rand(100000); } sub access { return unless $enabled; open OUT,">>".&const::get("log_access") or die("Error writing access"); print OUT &convCSV(&accessID, $ENV{REMOTE_ADDR}, $0, new date->format("yyyy/MM/dd hh:mm:ss")); close OUT; } sub param { return unless $enabled; my $in=shift; open OUT,">>".&const::get("log_param") or die("Error writing param"); while (my($k,$v)=each %{$in}) { if (length($v)>1024 or $k =~ /^pass/) { print OUT &convCSV(&accessID,$k,"****"); } else { print OUT &convCSV(&accessID,$k,$v); } } close OUT; } sub sql { return unless $enabled; my $sql=shift; open OUT,">>".&const::get("log_sql") or die("Error writing sql"); print OUT &convCSV(&accessID,$sql); close OUT; } sub error { return unless $enabled; my $err=shift; open OUT,">>".&const::get("log_error"); print OUT &convCSV(&accessID,$err); close OUT; } sub user { return unless $enabled; my $session=shift; my $user=shift; open OUT,">>".&const::get("log_user") or die("Error writing user"); print OUT &convCSV(&accessID,$session,$user); close OUT; } sub convCSV { my @row=@_; for my $r(@row) { $r =~ s/\r//g; $r =~ s/\\/\\s/g; $r =~ s/\t/\\t/g; $r =~ s/\n/\\n/g; } join ("\t",@row)."\n"; } 1;