[Moscow.pm] Mojo::Log и utf8

Grigory Batalov grisxa на gmail.com
Вт Дек 11 02:08:25 PST 2012


В Mon, 10 Dec 2012 21:22:34 +0400
Akzhan Abdulin <akzhan.abdulin на gmail.com> пишет:

> А что мешает отдавать не потоки байт, а строки в utf8 в журнал?

Т.е. делать везде

utf8::decode($err) unless utf8::is_utf8 $err;
$log->warn($err);
?

> > Кто-нибудь сталкивался с кракозябами в логах mojo?
> > У меня это происходит следующим образом: система выдаёт ошибку,
> > я её ловлю и записываю в журнал. Предполагаю, что строка с ошибкой
> > является потоком байт, а mojo считает, что все строки - в utf8,
> > и записывает примерно так:
> >
> > СеÑ<U+0082>Ñ<U+008C> недоÑ<U+0081>Ñ<U+0082>Ñ<U+0083>пна
> >
> > И кто как справляется с этим? Не лишним ли будет использование
> > такой надстройки?
> >
> > package My::Mojo::Log;
> >
> > use base 'Mojo::Log';
> > use List::MoreUtils qw(apply);
> >
> > sub warn {
> >     shift->SUPER::warn(  apply { utf8::decode($_) unless
> > utf8::is_utf8 $_ } @_ )
> > }


Подробная информация о списке рассылки Moscow-pm