|
24 | 24 | LOG_PREFIX = os.environ.get("XPRA_LOG_PREFIX", LOG_PREFIX) |
25 | 25 | DEBUG_MODULES = tuple(x.strip() for x in os.environ.get("XPRA_DEBUG_MODULES", "").split(",") if x.strip()) |
26 | 26 | NOPREFIX_FORMAT: Final[str] = "%(message)s" |
| 27 | +EMOJIS = os.environ.get("XPRA_EMOJIS", "1") == "1" |
27 | 28 |
|
28 | 29 |
|
29 | 30 | BACKTRACE_LEVEL = int(os.environ.get("XPRA_LOG_BACKTRACE_LEVEL", logging.CRITICAL)) |
|
38 | 39 | debug_enabled_categories: set[str] = set() |
39 | 40 | debug_disabled_categories: set[str] = set() |
40 | 41 | backtrace_expressions: set[re.Pattern] = set() |
| 42 | +emojis = False |
41 | 43 |
|
42 | 44 |
|
43 | 45 | MODULE_FILE = os.path.join(os.sep, "xpra", "log.py") # ie: "/xpra/log.py" |
@@ -171,6 +173,9 @@ def enable_color(to=sys.stdout, format_string=NOPREFIX_FORMAT) -> None: |
171 | 173 | csh = ColorStreamHandler(to) |
172 | 174 | csh.setFormatter(logging.Formatter(format_string)) |
173 | 175 | setloghandler(csh) |
| 176 | + if EMOJIS: |
| 177 | + global emojis |
| 178 | + emojis = True |
174 | 179 |
|
175 | 180 |
|
176 | 181 | def enable_format(format_string: str) -> None: |
@@ -544,9 +549,19 @@ def info(self, msg: str, *args, **kwargs) -> None: |
544 | 549 | self.log(logging.INFO, msg, *args, **kwargs) |
545 | 550 |
|
546 | 551 | def warn(self, msg: str, *args, **kwargs) -> None: |
| 552 | + if emojis: |
| 553 | + if msg.startswith("Warning:"): |
| 554 | + msg = "⚠️ " + msg[len("Warning:"):].strip() |
| 555 | + elif msg.startswith(" "): |
| 556 | + msg = " " + msg.strip() |
547 | 557 | self.log(logging.WARN, msg, *args, **kwargs) |
548 | 558 |
|
549 | 559 | def error(self, msg: str, *args, **kwargs) -> None: |
| 560 | + if emojis: |
| 561 | + if msg.startswith("Error:"): |
| 562 | + msg = "🔴 " + msg[len("Error:"):].strip() |
| 563 | + elif msg.startswith(" "): |
| 564 | + msg = " " + msg.strip() |
550 | 565 | self.log(logging.ERROR, msg, *args, **kwargs) |
551 | 566 |
|
552 | 567 | def estr(self, e, **kwargs) -> None: |
|
0 commit comments