dask / dask/distributed

Bokeh's log level set on import affects Panel/Bokeh apps

Open
#8,750 2 comments 0 reactions 0 assignees View on GitHub
needs triage
Dominant language
Python
Stars
1.7k
Forks
778
Avg merge
2h 50m
Merged PRs (30d)
3

Description

**Describe the issue**:

[Panel](https://github.com/holoviz/panel) is a Python dashboarding framework that builds on and extends Bokeh. We have observed (https://github.com/holoviz/panel/issues/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.

https://github.com/dask/distributed/blob/50700f381075c8d2be1b17dacc1b5f48dcc93a88/distributed/config.py#L215

https://github.com/dask/distributed/blob/50700f381075c8d2be1b17dacc1b5f48dcc93a88/distributed/config.py#L97-L102

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.

```python
# 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.

https://github.com/dask/distributed/issues/1683
https://github.com/dask/distributed/pull/3087

**Environment**:

- Dask version: 2024.6.2
- Python version: 3.12
- Operating System: MacOS
- Install method (conda, pip, source): conda

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.