Description
Describe the issue:
Panel is a Python dashboarding framework that builds on and extends Bokeh. We have observed (holoviz/panel#2302) that importing distributed
in a Panel application affects the logs emitted by Bokeh.
The issue is that on import distributed
configures some loggers, including Bokeh's logger that is set to the ERROR
level, while it's by default at the INFO
level.
distributed/distributed/config.py
Line 215 in 50700f3
distributed/distributed/config.py
Lines 97 to 102 in 50700f3
I would say that setting Bokeh's logger should not be done on import but only when the Dask dashboard is launched.
Minimal Complete Verifiable Example:
Install panel, launch this app with panel serve app.py
and visit it at http://localhost:5006.
# app.py
import distributed
import panel as pn
pn.panel("Hello world!").servable()
You will get these logs printed in the console:
2024-07-04 15:19:44,133 Starting Bokeh server version 3.5.0rc1 (running on Tornado 6.4)
2024-07-04 15:19:44,135 User authentication hooks NOT provided (default user enabled)
2024-07-04 15:19:44,137 Bokeh app running at: http://localhost:5006/app
2024-07-04 15:19:44,137 Starting Bokeh server with process id: 75848
However, you should get these logs (comment out import distributed
), with two additional lines.
2024-07-04 15:19:10,793 Starting Bokeh server version 3.5.0rc1 (running on Tornado 6.4)
2024-07-04 15:19:10,808 User authentication hooks NOT provided (default user enabled)
2024-07-04 15:19:10,810 Bokeh app running at: http://localhost:5006/app
2024-07-04 15:19:10,810 Starting Bokeh server with process id: 75753
2024-07-04 15:19:12,419 WebSocket connection opened
2024-07-04 15:19:12,419 ServerConnection created
Anything else we need to know?:
There's been some discussion already on this topic in 2019 when the bokeh log level set by distributed
was decreased from CRITICAL to ERROR.
Environment:
- Dask version: 2024.6.2
- Python version: 3.12
- Operating System: MacOS
- Install method (conda, pip, source): conda