plackupで--daemonizeオプションをつけた時のアクセスログ

 plackup -s Starman --daemonize hello.psgi

こんな感じでStarman+daemonizeで起動したときにアクセスログがどこにも出ない*1
fujiwaraさんにPlack::Middleware::AccessLogはどう?とアドバイス頂いたので使ってみた。

use Log::Dispatch;
use Plack::Builder;

my $app = sub {
    my $env = shift;
    [ 200, [ "Content-Type", "text/plain" ], ["Hello World"] ];
};

builder {
    my $logger = Log::Dispatch->new(
        outputs => [
            [
                'File',
                min_level => 'debug',
                filename  => '/tmp/helloworld.log'
            ],
        ],
    );
    enable "Plack::Middleware::AccessLog",
      logger => sub { $logger->log( level => 'debug', message => @_ ) };

    $app;
};


おk。

*1:と思われる