33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
[[!template id=gitbranch branch=anarcat/dev/syslog_utf8 author="[[anarcat]]"]]
|
|
|
|
[[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]]
|
|
|
|
> If I remove the "eval" above, I get:
|
|
>
|
|
> Error: Wide character in syswrite at /usr/lib/perl/5.14/Sys/Syslog.pm line 485.
|
|
>
|
|
> I have improved a little the error handling in log_message() so that we see *something* when syslog fails, see the branch documented above. I can also confirm that reverting [[todo/syslog_should_show_wiki_name]] fixes the bug. Finally, I have a unit test that reproduces the problem in git, and a working patch for the bug, again in git.
|
|
>
|
|
> > One last note: I noticed that this problem also happens elsewhere in ikiwiki. For example, the [[plugins/notifyemail]] plugin will silently fail to send notifications if the pages contain unicode. The [[plugins/notifychanges]] plugin I am working on (in [[todo/option to send only the diff in notifyemail]]) seems to be working around the issue so far, but there's no telling which similar problem are out there.
|
|
|
|
>> I'd merge it. --[[smcv]]
|
|
|
|
>>> I've merged it, but I don't feel it fixes this bug. --[[Joey]]
|
|
|
|
>>>> (I removed the patch tag to take it off the patches list.)
|
|
>>>>
|
|
>>>> What else is needed? Systematic classification of outputs into
|
|
>>>> those that do and don't cope with Unicode? --[[smcv]]
|