如何从vscode扩展写入日志?

时间:2015-12-04 09:49:38

标签: visual-studio-code vscode-extensions language-server-protocol

我正在尝试使用VSCode的语言服务器开发扩展。我试图找出如何写文本来从扩展的语言 - 服务器部分记录。 console.log什么都不产生

4 个答案:

答案 0 :(得分:4)

在服务器端尝试使用connection.console.log。

// Create a connection for the server. The connection uses 
// stdin / stdout for message passing
let connection: IConnection = createConnection(process.stdin, process.stdout);
connection.console.log(`Console test.`);

客户端的调试控制台中显示的消息。

对于客户端,简单的console.log对我来说效果很好。

答案 1 :(得分:4)

您必须在客户端扩展代码中的客户端选项上设置outputChannelName属性:

let clientOptions: LanguageClientOptions = {
  outputChannelName: 'XYZ Language Server',
};

完成后,您可以使用console.log(),它将显示在VSCode扩展输出面板中。

答案 2 :(得分:3)

作为更新,您可以使用vscode.window.createOutputChannel创建输出容器,然后使用appendLine方法对其进行写入。

    //Create output channel
    let orange = vscode.window.createOutputChannel("Orange");

    //Write to output.
    orange.appendLine("I am a banana.");

Results of creating output channel.

答案 3 :(得分:1)

语言服务器协议支持日志记录,使用通知window/logMessage从服务器发送日志消息,VS代码将在输出面板中显示服务器的日志,在语言客户端对应的通道中启动了服务器。