From abdeed7bb6ab4e384a9a93fa7020a5258c704ce6 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 25 Aug 2017 15:39:23 -0700 Subject: [PATCH] Handle unicode errors in LogPrinter Signed-off-by: Joffrey F --- compose/cli/log_printer.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/compose/cli/log_printer.py b/compose/cli/log_printer.py index 043d3d068..60bba8da6 100644 --- a/compose/cli/log_printer.py +++ b/compose/cli/log_printer.py @@ -102,8 +102,18 @@ class LogPrinter(object): # active containers to tail, so continue continue + self.write(line) + + def write(self, line): + try: self.output.write(line) - self.output.flush() + except UnicodeEncodeError: + # This may happen if the user's locale settings don't support UTF-8 + # and UTF-8 characters are present in the log line. The following + # will output a "degraded" log with unsupported characters + # replaced by `?` + self.output.write(line.encode('ascii', 'replace').decode()) + self.output.flush() def remove_stopped_threads(thread_map):