log4perl で警告が出ていた Wide character in print

log4perl で、警告が出てた。

Warning caught during route execution: Wide character in print at /home/xxx/perl5/lib/perl5/Log/Log4perl/Appender/File.pm line 245.

Dancerのconfigでwarnings = 1 にしておくと、警告があった場合に、ブラウザ上で警告内容を確認できる。(PHPみたいに) この機能自体は便利なんだけど、警告があった場合にサーバがステータスコード500を返して、ページ全体がエラーページを表示してしまうので、処理が止まってしまうことになる。

プロダクション環境では、warnings=0 で運用するだろうし、通常警告で処理が止まってしまうことはないんですが、気持わるいので、 Wide characterの警告は出力しないようにしたい。

log4perl.rootLogger              = DEBUG, file, console
log4perl.appender.file           = Log::Log4perl::Appender::File
log4perl.appender.file.filename  = /tmp/app.log
log4perl.appender.file.mode      = append
log4perl.appender.file.layout    = Log::Log4perl::Layout::PatternLayout
log4perl.appender.file.layout.ConversionPattern = %d %p %m %n
log4perl.appender.file.utf8      = 1
 
log4perl.appender.console           = Log::Log4perl::Appender::Screen
log4perl.appender.console.layout    = Log::Log4perl::Layout::PatternLayout
log4perl.appender.console.layout.ConversionPattern = %d %p %m %n
log4perl.appender.console.utf8      = 1

log4perl.appender.file.utf8 = 1 として、開発サーバを再起動すれば、さっきの警告は無視してくれるようになります。

今の時代になっても、perl って毎回文字コード関係でトラブる。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.