// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. import { sendInfo, sendOperationError } from "vscode-extension-telemetry-wrapper"; export enum Type { EXCEPTION = "exception", USAGEDATA = "usageData", USAGEERROR = "usageError", ACTIVATEEXTENSION = "activateExtension", // TODO: Activation belongs to usage data, remove this category. } export function logJavaException(errorProperties: any): void { /** * A sample errorProperties from Java code. * { * "description": "Failed to attach to remote debuggee VM. Reason: java.net.ConnectException: Connection refused: connect", * "message": "Failed to attach to remote debuggee VM. Reason: java.net.ConnectException: Connection refused: connect", * "stackTrace": "[{\"declaringClass\":\"com.microsoft.java.debug.core.adapter.AdapterUtils\", ...]", * "debugSessionid": "5680f12b-5b5f-4ac0-bda3-d1dbc3c12c10", * } */ const { debugSessionId, description, message, stackTrace } = errorProperties; sendOperationError(debugSessionId, "debugSession", { name: "JavaException", message: description || message, stack: stackTrace, }); } export function logJavaInfo(commonProperties: any, measureProperties?: any): void { if (measureProperties && measureProperties.duration !== undefined) { sendInfo(commonProperties.debugSessionId, commonProperties, measureProperties); } else { sendInfo(commonProperties.debugSessionId, commonProperties); } }