use constant TRACE => 1 << 4;
use constant BACKTRACE_ON_ERROR => 1 << 5;
use constant REQUEST_TIMER => 1 << 6;
-use constant WARN => 1 << 7;
-use constant TRACE2 => 1 << 8;
-use constant ALL => (1 << 9) - 1;
+use constant REQUEST => 1 << 7;
+use constant WARN => 1 << 8;
+use constant TRACE2 => 1 << 9;
+use constant ALL => (1 << 10) - 1;
use constant DEVEL => INFO | DEBUG1 | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER;
use constant FILE_TARGET => 0;
use POSIX qw(strftime getppid);
use Time::HiRes qw(gettimeofday tv_interval);
use YAML;
+use SL::Request ();
use strict;
$self->message($level, $prefix . sprintf('(%d row%s)', scalar @{ $results }, scalar @{ $results } > 1 ? 's' : ''));
}
+sub dump_object {
+ my ($self, $level, $text, $object) = @_;
+
+ my $copy;
+ if ($object) {
+ $copy->{$_} = $object->$_ for $object->meta->columns;
+ }
+
+ $self->dump($level, $text, $copy);
+}
+
sub show_diff {
my ($self, $level, $item1, $item2, %params) = @_;
local *FILE;
chomp($message);
+ $self->_write_raw("${date}${message}\n");
+}
+sub _write_raw {
+ my ($self, $message) = @_;
+ local *FILE;
if ((FILE_TARGET == $self->{"target"})
&& open(FILE, ">>", $self->{"file"})) {
- print(FILE "${date}${message}\n");
- close(FILE);
+ print FILE $message;
+ close FILE;
} elsif (STDERR_TARGET == $self->{"target"}) {
- print(STDERR "${date}${message}\n");
+ print STDERR $message;
}
}
return $global_level & $self->_by_name($level);
}
+sub is_request_logging_enabled {
+ my ($self) = @_;
+ return $global_level & REQUEST;
+}
+
+sub add_request_params {
+ my ($self, $key, $value) = @_;
+ return unless $self->is_request_logging_enabled;
+ return if $key =~ /password/;
+
+ push @{ $::request->{debug}{PARAMS} ||= [] }, [ $key => $value ];
+}
+
+sub log_request {
+ my ($self, $type, $controller, $action) = @_;
+ return unless $self->is_request_logging_enabled;
+
+ my $session_id = $::auth->create_or_refresh_session;
+
+ my $template = <<EOL;
+*************************************
+ $ENV{REQUEST_METHOD} $ENV{SCRIPT_NAME} $session_id ($::myconfig{login})
+ routing: $type, controller: $controller, action: $action
+EOL
+
+ $self->_write('Request', $template);
+
+ my $params = join "\n ", map {
+ "$_->[0] = $_->[1]"
+ } @{ $::request->{debug}{PARAMS} || [] };
+
+ $self->_write_raw(<<EOL);
+
+ Params
+ $params
+EOL
+}
+
1;
__END__