python-3.x - 在 Python 中禁用 websockets 包的记录器

标签 python-3.x logging websocket

我正在使用 websockets在python中创建一个websocket服务器的包;同时我大量使用 logging在不同的日志级别。
websockets documentation提到记录器配置,它可以更改为日志级别 ERROR使用

     logger = logging.getLogger('websockets.server')
     logger.setLevel(logging.ERROR)
     logger.addHandler(logging.StreamHandler())

然而,这对我的代码没有任何影响,无论我把它放在哪里(在导入下方,在 websockets 导入之前,在 __main__ 内)。我想要两种配置 - 一种全局日志配置和 websockets 服务器的记录器配置。

另一种选择是完全禁用 websockets 模块的日志记录,但我不知道如何做到这一点。有任何想法吗?

最佳答案

原来它不仅是websockets.server这会发出大量调试消息,还有其他消息。我最终通过使用 %(name)s 来寻找这些软件包。根记录器配置中的字段,可以找到 websockets.protocol负责额外的消息。

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s %(name)s %(levelname)-8s  %(message)s',
    datefmt='(%H:%M:%S)')

# disable all loggers from different files
logging.getLogger('asyncio').setLevel(logging.ERROR)
logging.getLogger('asyncio.coroutines').setLevel(logging.ERROR)
logging.getLogger('websockets.server').setLevel(logging.ERROR)
logging.getLogger('websockets.protocol').setLevel(logging.ERROR)

关于python-3.x - 在 Python 中禁用 websockets 包的记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52281912/

相关文章:

python - python 网络应用程序中的自动注销

Android Socket.io Websocket 传输不适用于 SSL

r - R 中的 Websocket

python - 如何迭代由 getter 或 @property 定义的对象的属性?

c# - Serilog + ElasticSearch Sink 连接问题(.net core)

python - 如何在PyQt5中单击鼠标时更改图标

python-2.7 - python 2.7 : remove handler object or logger

http - 如何使用 Tyrus java 客户端在初始 WebSocket 客户端请求中包含 cookie?

python - 子进程,从 STDOUT 读取时重复写入 STDIN (Windows)

python - 如何在抓取之前从数据库获取 url 和行 id 以在管道中使用它来存储数据?