summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2010-03-10 10:55:12 +0100
committerYorhel <git@yorhel.nl>2010-03-10 10:55:12 +0100
commitd7f850931451bf11538fea70b0dac212be346fc9 (patch)
tree68b6d92170d4cadb1fbbd237962692fb5b830c2d /lib
parenta4988cf068fa52dae3f0ff88d73564136e54f2d2 (diff)
Added log_show_pages option, to log pages slower than a specified thresholdHEADmaster
Diffstat (limited to 'lib')
-rw-r--r--lib/YAWF.pm9
-rw-r--r--lib/YAWF/DB.pm19
2 files changed, 15 insertions, 13 deletions
diff --git a/lib/YAWF.pm b/lib/YAWF.pm
index 062cae6..4113760 100644
--- a/lib/YAWF.pm
+++ b/lib/YAWF.pm
@@ -45,7 +45,7 @@ sub init {
$SIG{__WARN__} = sub { $YAWF::OBJ->log($_) for @_; };
# load optional modules
- require Time::HiRes if $OBJ->debug;
+ require Time::HiRes if $OBJ->debug || $OBJ->{_YAWF}{log_slow_pages};
# load the modules
$OBJ->load_modules;
@@ -117,7 +117,7 @@ sub load_modules {
sub handle_request {
my $self = shift;
- my $start = [Time::HiRes::gettimeofday()] if $self->debug;
+ my $start = [Time::HiRes::gettimeofday()] if $self->debug || $OBJ->{_YAWF}{log_slow_pages};
# put everything in an eval to catch any error, even
# those caused by a YAWF core module
@@ -201,8 +201,8 @@ sub handle_request {
# log debug information in the form of:
# > 12ms (SQL: 8ms, 2 qs) for http://beta.vndb.org/v10
- if($self->debug) {
-
+ my $time = Time::HiRes::tv_interval($start)*1000 if $self->debug || $self->{_YAWF}{log_slow_pages};
+ if($self->debug || ($self->{_YAWF}{log_slow_pages} && $self->{_YAWF}{log_slow_pages} < $time)) {
# SQL stats (don't count the ping and commit as queries, but do count their time)
my($sqlt, $sqlc) = (0);
if($self->{_YAWF}{db_login}) {
@@ -211,7 +211,6 @@ sub handle_request {
for (@{$self->{_YAWF}{DB}{queries}});
}
- my $time = Time::HiRes::tv_interval($start)*1000;
$self->log(sprintf('>%4dms (SQL:%4dms,%3d qs) for %s',
$time, $sqlt, $sqlc, $self->reqURI), 1);
}
diff --git a/lib/YAWF/DB.pm b/lib/YAWF/DB.pm
index ec2500b..7a2dc1b 100644
--- a/lib/YAWF/DB.pm
+++ b/lib/YAWF/DB.pm
@@ -30,8 +30,11 @@ sub dbCheck {
my $self = shift;
my $info = $self->{_YAWF}{DB};
- $info->{queries} = [] if $self->debug;
- my $start = [Time::HiRes::gettimeofday()] if $self->debug;
+ my $start;
+ if($self->debug || $self->{_YAWF}{log_slow_pages}) {
+ $info->{queries} = [];
+ $start = [Time::HiRes::gettimeofday()];
+ }
if(!$info->{sql}->ping) {
warn "Ping failed, reconnecting";
@@ -40,7 +43,7 @@ sub dbCheck {
$self->dbRollBack;
push(@{$info->{queries}},
[ 'ping/rollback', Time::HiRes::tv_interval($start) ])
- if $self->{_YAWF}{debug};
+ if $self->debug || $self->{_YAWF}{log_slow_pages};
}
@@ -51,10 +54,10 @@ sub dbDisconnect {
sub dbCommit {
my $self = shift;
- my $start = [Time::HiRes::gettimeofday()] if $self->debug;
+ my $start = [Time::HiRes::gettimeofday()] if $self->debug || $self->{_YAWF}{log_slow_pages};
$self->{_YAWF}{DB}{sql}->commit();
- $self->debug && push(@{$self->{_YAWF}{DB}{queries}},
- [ 'commit', Time::HiRes::tv_interval($start) ]);
+ push(@{$self->{_YAWF}{DB}{queries}}, [ 'commit', Time::HiRes::tv_interval($start) ])
+ if $self->debug || $self->{_YAWF}{log_slow_pages};
}
@@ -103,7 +106,7 @@ sub sqlhelper { # type, query, @list
my $sqlq = shift;
my $s = $self->{_YAWF}{DB}{sql};
- my $start = [Time::HiRes::gettimeofday()] if $self->debug;
+ my $start = [Time::HiRes::gettimeofday()] if $self->debug || $self->{_YAWF}{log_slow_pages};
$sqlq =~ s/\r?\n/ /g;
$sqlq =~ s/ +/ /g;
@@ -117,7 +120,7 @@ sub sqlhelper { # type, query, @list
$q->rows;
$q->finish();
- push(@{$self->{_YAWF}{DB}{queries}}, [ \@q, Time::HiRes::tv_interval($start) ]) if $self->debug;
+ push(@{$self->{_YAWF}{DB}{queries}}, [ \@q, Time::HiRes::tv_interval($start) ]) if $self->debug || $self->{_YAWF}{log_slow_pages};
$r = 0 if $type == 0 && (!$r || $r == 0);
$r = {} if $type == 1 && (!$r || ref($r) ne 'HASH');