microsoft/vscode-languageserver-node

VSCode language client should configure logger pointing to the output channel rather than console

開放

#1,613 建立於 2025年2月8日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (397 個分叉)auto 404
feature-requesthelp wanted

倉庫指標

星標
 (1,776 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

I recently received a user report of a bug in my language server, but the expected error log did not show in the configured output channel as I expected. Typically I direct users to look into this output channel when reporting issues.

I happened to find the error after I opened Developer: Toggle Developer Tools and saw the error log in the developer console, rather than the output channel:

The logged error was a Received response message without id, and looking at the code this comes from a call to logger.error:

https://github.com/microsoft/vscode-languageserver-node/blob/d810d51297c667bd3a3f46912eb849055beb8b6b/jsonrpc/src/common/connection.ts#L909

Logger is configurable, and after looking around I found that the client configures the logger as a ConsoleLogger, which is why it ends up going to the developer console:

https://github.com/microsoft/vscode-languageserver-node/blob/d810d51297c667bd3a3f46912eb849055beb8b6b/client/src/common/client.ts#L2409

What do you think about changing this to log into the vscode output channel rather than the console? I believe this will make the logs more visible for debugging

貢獻者指南