Implement ide_logging to handle different log levels

This commit is contained in:
kagami 2024-02-01 22:29:57 +08:00
parent 94f5dab691
commit 80161a1367
3 changed files with 14 additions and 24 deletions

View File

@ -1,14 +1,10 @@
import { logger } from "../../util/logger"; import { logger } from "../../util/logger";
export async function logInfo(message: string) { export async function ideLogging(level: string, message: string) {
logger.channel()?.info(message); if (typeof logger.channel()?.[level] === "function") {
return true; // level is one of "info", "warn", "error", "debug"
} logger.channel()?.[level](message);
export async function logWarn(message: string) {
logger.channel()?.warn(message);
return true;
}
export async function logError(message: string) {
logger.channel()?.error(message);
return true; return true;
}
return false;
} }

View File

@ -5,7 +5,7 @@ import { logger } from "../util/logger";
import { getServicePort } from "./endpoints/getServicePort"; import { getServicePort } from "./endpoints/getServicePort";
import { installPythonEnv } from "./endpoints/installPythonEnv"; import { installPythonEnv } from "./endpoints/installPythonEnv";
import { logError, logInfo, logWarn } from "./endpoints/ideLogging"; import { ideLogging} from "./endpoints/ideLogging";
import { updateSlashCommands } from "./endpoints/updateSlashCommands"; import { updateSlashCommands } from "./endpoints/updateSlashCommands";
import { ideLanguage } from "./endpoints/ideLanguage"; import { ideLanguage } from "./endpoints/ideLanguage";
import { LegacyEndpoints } from "./endpoints/legacy"; import { LegacyEndpoints } from "./endpoints/legacy";
@ -32,17 +32,9 @@ const functionRegistry: any = {
keys: [], keys: [],
handler: ideLanguage, handler: ideLanguage,
}, },
"/log_info": { "/ide_logging": {
keys: ["message"], keys: ["level", "message"],
handler: logInfo, handler: ideLogging,
},
"/log_warn": {
keys: ["message"],
handler: logWarn,
},
"/log_error": {
keys: ["message"],
handler: logError,
}, },
"/get_document_symbols": { "/get_document_symbols": {
keys: ["abspath"], keys: ["abspath"],

View File

@ -2,6 +2,8 @@
* Type definitions for IDE Service Protocol * Type definitions for IDE Service Protocol
*/ */
export namespace IDEService { export namespace IDEService {
export type LogLevel = "info" | "warn" | "error" | "debug";
export interface Position { export interface Position {
line: number; // 0-based line: number; // 0-based
character: number; // 0-based character: number; // 0-based