Hello配合我有以下sub,当事情变坏时应该得到错误日志:
sub _log_warning {
my $log = Log::Minimal::Instance->new(
base_dir =>
&config->current->{'log_reader'}->{'base_dir'},
pattern => &config->current->{'log_reader'}->{'pattern'},
);
$log->infof("Could not register to DB. Got $_");
}
我用Try :: Tiny激活
use Try::Tiny;
try { _log_to_database(); }
catch {
_log_warning();
};
要检查此错误处理错误,我会引发错误,丢失文件错误。我得到的日志是:
2013-07-04T11:46:39 [INFO] Could not register to DB. Got ã<81><9d>ã<81>®ã<82><88>ã<81>
<86>ã<81>ªã<83><95>ã<82>¡ã<82>¤ã<83>«ã<82><84>ã<83><87>ã<82>£ã<83 ....
我看不懂这个。但是当我尝试输出错误不是作为日志文件,而是在STDOUT中时,我得到的信息很好:
The try block died with: そのようなファイルやディレクトリはありません: /var/log/....
该消息是日文的。 当输出是日志文件而不是标准输出时,如何以正确的编码(日语)获取消息? 我在世界各地。
答案 0 :(得分:0)
这里有几点需要考虑。但是,首先,Log :: Server来自哪里?我在CPAN上找不到它。您可能需要配置(或者,更坏的情况下,修复它)以了解Unicode。