ikiwiki/doc/bugs/syslog_fails_with_non-ASCII...

36 lines
1.2 KiB
Plaintext
Raw Normal View History

2013-09-08 00:04:58 +02:00
[[this feature|todo/syslog_should_show_wiki_name]] made it so syslog doesn't work anymore if the site being logged has non-ASCII characters it in.
Specifically, my wiki was named "CⒶTS", and nothing was showing up in syslog. When I changed that to "C@TS", it worked again.
My guess is this sits somewhere here:
[[!format perl """
return eval {
Sys::Syslog::syslog($type, "[$config{wikiname}] %s", join(" ", @_));
};
"""]]
Yet I am not sure how to fix that kind of problem in Perl... --[[anarcat]]
2013-09-08 00:19:34 +02:00
I tried to make this unit test:
[[!format perl """
#!/usr/bin/perl
use warnings;
use strict;
use Test::More tests => 5;
BEGIN { use_ok("IkiWiki"); }
$IkiWiki::config{verbose} = 1;
$IkiWiki::config{syslog} = 1;
$IkiWiki::config{wikiname} = 'ascii';
ok(debug('test'));
$IkiWiki::config{wikiname} = 'not ⒶSCII';
ok(debug('test'));
"""]]
And I couldn't reproduce the problem. Therefore, I suspect the problem may be somewhere else - maybe in the options parsing? One thing that's for sure: when I put that funky character in the title, it breaks logging! If I remove the "eval" above, I get:
Error: Wide character in syswrite at /usr/lib/perl/5.14/Sys/Syslog.pm line 485.