use strict;
-use vars qw($logDate $loggingstatus $statcount $bot_pid
+use vars qw($logDate $statcount $bot_pid $forkedtime
$statcountfix $addressed $logcount $logtime);
use vars qw(@backlog);
use vars qw(%param %file);
require 5.001;
$logtime = time();
+$logcount = 0;
my %attributes = (
'clear' => 0,
return unless (&IsParam("logfile"));
$file{log} = $param{'logfile'};
+ my $error = 0;
+ my $path = &getPath($file{log});
+ while (! -d $path) {
+ if ($error) {
+ &ERROR("openLog: failed opening log to $file{log}; disabling.");
+ delete $param{'logfile'};
+ return;
+ }
+
+ &status("openLog: making $path.");
+ last if (mkdir $path, 0755);
+ $error++;
+ }
+
if (&IsParam("logType") and $param{'logType'} =~ /DAILY/i) {
my ($day,$month,$year) = (localtime(time()))[3,4,5];
$logDate = sprintf("%04d%02d%02d",$year+1900,$month+1,$day);
if (open(LOG, ">>$file{log}")) {
&status("Opened logfile $file{log}.");
LOG->autoflush(1);
- $loggingstatus = 1;
} else {
- &status("cannot open logfile $file{log}; disabling.");
- $loggingstatus = 0;
+ &status("cannot open logfile $file{log}; not logging.");
}
}
sub closeLog {
# lame fix for paramlogfile.
return unless (&IsParam("logfile"));
- return unless ($loggingstatus);
+ return unless (defined fileno LOG);
- $loggingstatus = 0;
&status("Closed logfile ($file{log}).");
close LOG;
}
sub WARN {
return unless (&IsParam("WARN"));
+ return if ($_[0] =~ /^PERL: Subroutine \S+ redefined at/);
+
&status("${b_yellow}!WARN!$ob $_[0]");
}
my($input) = @_;
my $status;
- # return if input is null'ish.
- return '' if ($input =~ /^\s*$/);
+ # if it's not a scalar, attempt to warn and fix.
+ if (ref($input) ne "") {
+ &status("status: 'input' is not scalar (".ref($input).").");
+ if (ref($input) eq "ARRAY") {
+ foreach (@$input) {
+ &WARN("status: '$_'.");
+ }
+ }
+ }
+
+ # Something is using this w/ NULL.
+ if (!defined $input or $input =~ /^\s*$/) {
+ $input = "Blank status call?";
+ }
$input =~ s/\n+$//;
$input =~ s/\002|037//g; # bold,video,underline => remove.
$status = "!$statcount! ".$input;
if ($statcount > 1000) {
print LOG "ERROR: FORKED PROCESS RAN AWAY; KILLING.\n";
+ print LOG "VERB: ".(&Time2String(time() - $forkedtime))."\n";
exit 0;
}
} else {
} else {
print "$printable\n";
}
+ } else {
+ print "VERBOSITY IS OFF?\n";
}
# log the line into a file.
return unless (&IsParam("logfile"));
- return unless ($loggingstatus);
+ return unless (defined fileno LOG);
# remove control characters from logging.
$input =~ s/\e\[[0-9;]+m//g;
print LOG sprintf("%s %s\n", $date, $input);
}
+sub openSQLDebug {
+ if (!open(SQLDEBUG, ">>$param{'SQLDebug'}")) {
+ &ERROR("cannot open $param{'SQLDebug'}...");
+ delete $param{'SQLDebug'};
+ return 0;
+ }
+
+ &status("Opened SQL Debug file: $param{'SQLDebug'}");
+ return 1;
+}
+
+sub closeSQLDebug {
+ close SQLDEBUG;
+
+ &status("Closed SQL Debug file: $param{'SQLDebug'}");
+}
+
1;