python - 日志记录和 Python Bokeh 兼容性

标签 python logging bokeh

我正在使用导入日志记录来保存对 Bokeh 服务器的更改,并且我想将其保存到扩展名为 .log 的文件中,但是当我运行 Bokeh 服务器时,不会创建该文件,并且无法将操作保存到.log 文件。 下面是我写的部分代码。

是否是我在代码中犯了错误,或者 Bokeh 服务器没有按照日志记录工作?

import logging
LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
logging.basicConfig(filename = "test.log",
                level = logging.DEBUG,
                format = LOG_FORMAT,
                filemode="w")
logger = logging.getLogger()

最佳答案

当您使用bokeh serve %some_python_file%时,Bokeh 服务器会立即启动,但只有当您实际打开指向您填写该代码的 Bokeh 文档的 URL 时,才会执行您的代码。

bokeh serve使用 logging.basicConfig 配置日志记录同样,再次调用此函数不会覆盖任何内容 - 这就是 logging.basicConfig 的方式有效。

而不是使用 logging直接,您应该创建并配置您自己的记录器:

LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
file_handler = logging.FileHandler(filename='test.log', mode='w')
file_handler.setFormatter(logging.Formatter(LOG_FORMAT))
logger = logging.getLogger(__name__)
logger.addHandler(file_handler)
logger.setLevel(logging.DEBUG)

logger.info('Hello there')

关于python - 日志记录和 Python Bokeh 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48754996/

相关文章:

c++ - Boost Log Formatter 使用与关键字相同的字符串

python - 带有 Bokeh nyc_taxi 示例的 MemoryError

python - 在 QT 样式表中使用相对 url

javascript - 不正确配置 : Error importing middleware django. contrib.admindocs.middleware: "No module named middleware"

python - 按 DataFrame 的主列级别分组,然后在每个子级别上应用一个函数

logging - docx4j 3.0 使用 slf4j/logback 进行日志记录

mysql - 如何配置binlog获取User-Information?

用于机器学习的 Python 导入

Python Bokeh : Plotting same chart multiple times in gridplot

javascript - Bokeh :根据 slider 更改 map 上的点