diff options
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-02-08 19:14:41 (GMT) |
|---|---|---|
| committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-02-08 19:14:41 (GMT) |
| commit | 9c78658670ed97c49a474e7b6d334dc0cd3083c8 (patch) | |
| tree | e55136ebb3e624636ddaa79fa2c2cc3cdebcbfd0 /Lib/logging/__init__.py | |
| parent | dd0989e7df0fa92a612dafd1180519a5d573b83a (diff) | |
| download | cpython-9c78658670ed97c49a474e7b6d334dc0cd3083c8.zip cpython-9c78658670ed97c49a474e7b6d334dc0cd3083c8.tar.gz cpython-9c78658670ed97c49a474e7b6d334dc0cd3083c8.tar.bz2 | |
Issue #5170: Fixed Unicode output bug in logging and added test case. This is a regression which did not occur in 2.5.
Diffstat (limited to 'Lib/logging/__init__.py')
| -rw-r--r-- | Lib/logging/__init__.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index eff0bae..dd44b67 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -748,17 +748,19 @@ class StreamHandler(Handler): """ try: msg = self.format(record) + stream = self.stream fs = "%s\n" if not hasattr(types, "UnicodeType"): #if no unicode support... - self.stream.write(fs % msg) + stream.write(fs % msg) else: try: - if getattr(self.stream, 'encoding', None) is not None: - self.stream.write(fs % msg.encode(self.stream.encoding)) + if (isinstance(msg, unicode) or + getattr(stream, 'encoding', None) is None): + stream.write(fs % msg) else: - self.stream.write(fs % msg) + stream.write(fs % msg.encode(stream.encoding)) except UnicodeError: - self.stream.write(fs % msg.encode("UTF-8")) + stream.write(fs % msg.encode("UTF-8")) self.flush() except (KeyboardInterrupt, SystemExit): raise |
