From 50cfc56d892a0f305ce921ec2bcfce373f7ee958 Mon Sep 17 00:00:00 2001 From: Hiroshi Sakai Date: Fri, 8 Feb 2013 18:32:27 +0900 Subject: [PATCH] Added custom log formats %m, %U, %q and %H by Plack::Middleware::AccessLog. --- lib/Plack/Middleware/AccessLog.pm | 8 ++++++++ t/Plack-Middleware/access_log.t | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/Plack/Middleware/AccessLog.pm b/lib/Plack/Middleware/AccessLog.pm index b399c8ab4..43d4ee79e 100644 --- a/lib/Plack/Middleware/AccessLog.pm +++ b/lib/Plack/Middleware/AccessLog.pm @@ -85,6 +85,10 @@ sub log_line { V => sub { $env->{HTTP_HOST} || $env->{SERVER_NAME} || '-' }, p => sub { $env->{SERVER_PORT} }, P => sub { $$ }, + m => sub { _safe($env->{REQUEST_METHOD}) }, + U => sub { _safe($env->{PATH_INFO}) }, + q => sub { ($env->{QUERY_STRING} ne '') ? '?' . _safe($env->{QUERY_STRING}) : '' }, + H => sub { $env->{SERVER_PROTOCOL} }, ); my $char_handler = sub { @@ -184,6 +188,10 @@ L. diff --git a/t/Plack-Middleware/access_log.t b/t/Plack-Middleware/access_log.t index 438623c8e..4ae14d5fc 100644 --- a/t/Plack-Middleware/access_log.t +++ b/t/Plack-Middleware/access_log.t @@ -38,4 +38,22 @@ my $test = sub { is $log, '-'; } +{ + my $req = GET "http://example.com/"; + my $fmt = "%r == %m %U%q %H"; + $test->($fmt)->($req); + chomp $log; + my ($r, $rs) = split / == /, $log; + is $r, $rs; +} + +{ + my $req = GET "http://example.com/foo?bar=baz"; + my $fmt = "%r == %m %U%q %H"; + $test->($fmt)->($req); + chomp $log; + my ($r, $rs) = split / == /, $log; + is $r, $rs; +} + done_testing;