-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
Description
Describe the bug
When show_path=False
is passed to RichHandler
, it does not need to emit any content beyond the end of the log message, but it still pads out the content with spaces up to the console's width. This (a) makes it annoying to copy/paste as an end user, (b) means that resizing ones terminal/font size results in "blank" whitespace-only lines appearing in already-emitted log output, and (c) means that setting an explicitly high console width to avoid wrapping (which our CLI's integration tests do) results in huge amounts of whitespace in the output.
With the below script and sed
, we can demonstrate this:
$ python reproducer.py | sed 's/ /_/g'
2022-11-15_10:33:11_INFO_____Logging_initialised_____________________________________________________________________________________________________________________________
import logging
from rich.logging import RichHandler
def init_logging() -> logging.Logger:
handler = RichHandler(show_path=False)
logging.basicConfig(
datefmt="%Y-%m-%d %H:%M:%S",
format="%(message)s",
handlers=[handler],
level=logging.INFO,
)
logging.info("Logging initialised")
init_logging()
Platform
Click to expand
What platform (Win/Linux/Mac) are you running on? What terminal software are you using?
Ubuntu 20.04, GNOME Terminal
$ python -m rich.diagnose
╭───────────────────────── <class 'rich.console.Console'> ─────────────────────────╮
│ A high level console interface. │
│ │
│ ╭──────────────────────────────────────────────────────────────────────────────╮ │
│ │ <console width=173 ColorSystem.TRUECOLOR> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ color_system = 'truecolor' │
│ encoding = 'utf-8' │
│ file = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> │
│ height = 43 │
│ is_alt_screen = False │
│ is_dumb_terminal = False │
│ is_interactive = True │
│ is_jupyter = False │
│ is_terminal = True │
│ legacy_windows = False │
│ no_color = False │
│ options = ConsoleOptions( │
│ size=ConsoleDimensions(width=173, height=43), │
│ legacy_windows=False, │
│ min_width=1, │
│ max_width=173, │
│ is_terminal=True, │
│ encoding='utf-8', │
│ max_height=43, │
│ justify=None, │
│ overflow=None, │
│ no_wrap=False, │
│ highlight=None, │
│ markup=None, │
│ height=None │
│ ) │
│ quiet = False │
│ record = False │
│ safe_box = True │
│ size = ConsoleDimensions(width=173, height=43) │
│ soft_wrap = False │
│ stderr = False │
│ style = None │
│ tab_size = 8 │
│ width = 173 │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─── <class 'rich._windows.WindowsConsoleFeatures'> ────╮
│ Windows features available. │
│ │
│ ╭───────────────────────────────────────────────────╮ │
│ │ WindowsConsoleFeatures(vt=False, truecolor=False) │ │
│ ╰───────────────────────────────────────────────────╯ │
│ │
│ truecolor = False │
│ vt = False │
╰───────────────────────────────────────────────────────╯
╭────── Environment Variables ───────╮
│ { │
│ 'TERM': 'xterm-256color', │
│ 'COLORTERM': 'truecolor', │
│ 'CLICOLOR': None, │
│ 'NO_COLOR': None, │
│ 'TERM_PROGRAM': None, │
│ 'COLUMNS': None, │
│ 'LINES': None, │
│ 'JUPYTER_COLUMNS': None, │
│ 'JUPYTER_LINES': None, │
│ 'JPY_PARENT_PID': None, │
│ 'VSCODE_VERBOSE_LOGGING': None │
│ } │
╰────────────────────────────────────╯
platform="Linux"
$ pip freeze | grep rich
rich==12.6.0