Apache::LogFormat::Compiler のバージョン0.05で、ログフォーマットの %D とか %{..}i の文字を追加できるようになりました。
https://metacpan.org/release/KAZEBURO/Apache-LogFormat-Compiler-0.05/
こちらのticketを実装しました
https://github.com/kazeburo/Apache-LogFormat-Compiler/issues/1
使い方
my $log_handler = Apache::LogFormat::Compiler->new(
'%z %{HTTP_X_FORWARDED_FOR|REMOTE_ADDR}Z',
char_handlers => +{
'z' => sub {
my ($env,$req) = @_;
return $env->{HTTP_X_FORWARDED_FOR};
}
},
block_handlers => +{
'Z' => sub {
my ($block,$env,$req) = @_;
# block eq 'HTTP_X_FORWARDED_FOR|REMOTE_ADDR'
my ($main, $alt) = split('\|', $args);
return exists $env->{$main} ? $env->{$main} : $env->{$alt};
}
},
);
他にもPlackへの依存がなくなったり、いくつか修正が入ってます。