[Python-Dev] logging module broken because of locale (original) (raw)
Jim Jewett jimjjewett at gmail.com
Thu Jul 20 19:06:32 CEST 2006
- Previous message: [Python-Dev] logging module broken because of locale
- Next message: [Python-Dev] Undocumented PEP 302 protocol change by need-for-speed sprint
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/20/06, mihaiibanescu at yahoo.com <mihaiibanescu at yahoo.com> wrote:
On Thu, Jul 20, 2006 at 11:39:27AM -0400, Jim Jewett wrote:
> Even SysLogHandler.emit doesn't actually print the string; it is only > used as a lookup key for a dictionary whose keys are all lower-case > ASCII. In theory, you could monkey-patch that dictionary to add > additional values, but then you might as well subclass to do the right > thing with your new keys. (It might make sense to change the base > function and dictionary to accept unicode, including undotted-i > synonyms.)
My initial approach was to compute the values of the dictionary based on the current locale - and that doesn't work.
Correct, it would need to be done by hand. As part of the current class construction,
SysLogHandler.priority_names["info"] = SysLogHandler.LOG_INFO
You could add other entries, so that
SysLogHandler.priority_names["my_info"] = SysLogHandler.LOG_INFO
If you also changed SysLogHandler.encode_priority to accept unicode keys, you could even add u"info" and the equivalent with an undotted-i. I'm not sure this is worth doing, though, since they supposedly represent symbolic constants.
-jJ
The issue is not that the dictionary doesn't accept unicode, it's that there's no reliable way to do lookups in it. If you could sketch an example of what you had in mind with the monkey-patching, please do so, since I don't think I grasped the idea.
Misa
- Previous message: [Python-Dev] logging module broken because of locale
- Next message: [Python-Dev] Undocumented PEP 302 protocol change by need-for-speed sprint
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]