[Python-Dev] logging module broken because of locale (original) (raw)
Mihai Ibanescu misa at redhat.com
Wed Jul 19 23:29:19 CEST 2006
- Previous message: [Python-Dev] logging module broken because of locale
- Next message: [Python-Dev] logging module broken because of locale
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Jul 18, 2006 at 02:55:56PM -0400, Fred L. Drake, Jr. wrote:
On Tuesday 18 July 2006 14:52, Mihai Ibanescu wrote: > Unicode might be a perfectly acceptable suggestion for others too.
Are we still supporting builds that don't include Unicode? If so, that needs to be considered in a patch as well.
Good point. Does the attached patch look reasonable?
Thanks, Misa -------------- next part -------------- --- Python-2.4.3/Lib/logging/handlers.py.nolocale 2006-07-19 12:15:46.000000000 -0400 +++ Python-2.4.3/Lib/logging/handlers.py 2006-07-19 12:16:14.000000000 -0400 @@ -44,6 +44,12 @@ DEFAULT_SOAP_LOGGING_PORT = 9023 SYSLOG_UDP_PORT = 514
+# If python was not built with unicode support, use the str function instead +# of the unicode type, and hope locale doesn't break things. + +if not hasattr(builtins, 'unicode'):
- unicode = str
- class BaseRotatingHandler(logging.FileHandler): """ Base class for handlers that rotate log files at a certain point.
@@ -162,7 +168,7 @@ """ def init(self, filename, when='h', interval=1, backupCount=0, encoding=None): BaseRotatingHandler.init(self, filename, 'a', encoding)
self.when = string.upper(when)
self.when = unicode(when).upper() self.backupCount = backupCount # Calculate the real rollover interval, which is just the number of # seconds between rollovers. Also set the filename suffix used when
@@ -642,10 +648,12 @@ """ We need to convert record level to lowercase, maybe this will change in the future.
We convert it to unicode first, to avoid locale from changing the
meaning of lower() and upper() """ msg = self.log_format_string % ( self.encodePriority(self.facility,
string.lower(record.levelname)),
unicode(record.levelname).lower()), msg) try: if self.unixsocket:
@@ -854,7 +862,7 @@ ("GET" or "POST") """ logging.Handler.init(self)
method = string.upper(method)
method = unicode(method).upper() if method not in ["GET", "POST"]: raise ValueError, "method must be GET or POST" self.host = host
- Previous message: [Python-Dev] logging module broken because of locale
- Next message: [Python-Dev] logging module broken because of locale
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]