Move logging code to /common/logging and split into multiple files (#1800)

This commit is contained in:
Charis Kyriakou
2022-11-30 09:45:29 +00:00
committed by GitHub
parent a9a5d098c7
commit 74e047cbd8
58 changed files with 100 additions and 94 deletions

View File

@@ -1,7 +1,7 @@
import * as fs from "fs-extra";
import * as unzipper from "unzipper";
import * as vscode from "vscode";
import { logger } from "./logging";
import { logger } from "./common";
// All path operations in this file must be on paths *within* the zip
// archive.

View File

@@ -1,6 +1,6 @@
import * as semver from "semver";
import { runCodeQlCliCommand } from "./cli";
import { Logger } from "./logging";
import { Logger } from "./common";
import { getErrorMessage } from "./pure/helpers-pure";
/**

View File

@@ -22,7 +22,7 @@ import {
getErrorStack,
} from "./pure/helpers-pure";
import { QueryMetadata, SortDirection } from "./pure/interface-types";
import { Logger, ProgressReporter } from "./logging";
import { Logger, ProgressReporter } from "./common";
import { CompilationMessage } from "./pure/legacy-messages";
import { sarifParser } from "./sarif-parser";
import { dbSchemeToLanguage, walkDirectory } from "./helpers";

View File

@@ -7,7 +7,7 @@ import {
ProgressLocation,
} from "vscode";
import { showAndLogErrorMessage, showAndLogWarningMessage } from "./helpers";
import { logger } from "./logging";
import { logger } from "./common";
import { getErrorMessage, getErrorStack } from "./pure/helpers-pure";
import { telemetryListener } from "./telemetry";

View File

@@ -0,0 +1 @@
export * from "./logging";

View File

@@ -0,0 +1,3 @@
export * from "./logger";
export * from "./vscode/loggers";
export * from "./vscode/output-channel-logger";

View File

@@ -0,0 +1,24 @@
export interface LogOptions {
/** If false, don't output a trailing newline for the log entry. Default true. */
trailingNewline?: boolean;
/** If specified, add this log entry to the log file at the specified location. */
additionalLogLocation?: string;
}
export interface Logger {
/** Writes the given log message, optionally followed by a newline. */
log(message: string, options?: LogOptions): Promise<void>;
/**
* Reveal this channel in the UI.
*
* @param preserveFocus When `true` the channel will not take focus.
*/
show(preserveFocus?: boolean): void;
/**
* Remove the log at the specified location
* @param location log to remove
*/
removeAdditionalLogLocation(location: string | undefined): void;
}

View File

@@ -0,0 +1,15 @@
import { OutputChannelLogger } from "./output-channel-logger";
/** The global logger for the extension. */
export const logger = new OutputChannelLogger("CodeQL Extension Log");
/** The logger for messages from the query server. */
export const queryServerLogger = new OutputChannelLogger("CodeQL Query Server");
/** The logger for messages from the language server. */
export const ideServerLogger = new OutputChannelLogger(
"CodeQL Language Server",
);
/** The logger for messages from tests. */
export const testLogger = new OutputChannelLogger("CodeQL Tests");

View File

@@ -1,34 +1,8 @@
import { window as Window, OutputChannel, Progress } from "vscode";
import { DisposableObject } from "./pure/disposable-object";
import * as fs from "fs-extra";
import * as path from "path";
interface LogOptions {
/** If false, don't output a trailing newline for the log entry. Default true. */
trailingNewline?: boolean;
/** If specified, add this log entry to the log file at the specified location. */
additionalLogLocation?: string;
}
export interface Logger {
/** Writes the given log message, optionally followed by a newline. */
log(message: string, options?: LogOptions): Promise<void>;
/**
* Reveal this channel in the UI.
*
* @param preserveFocus When `true` the channel will not take focus.
*/
show(preserveFocus?: boolean): void;
/**
* Remove the log at the specified location
* @param location log to remove
*/
removeAdditionalLogLocation(location: string | undefined): void;
}
export type ProgressReporter = Progress<{ message: string }>;
import { Logger, LogOptions } from "../logger";
import { DisposableObject } from "../../../pure/disposable-object";
/** A logger that writes messages to an output channel in the Output tab. */
export class OutputChannelLogger extends DisposableObject implements Logger {
@@ -128,16 +102,4 @@ class AdditionalLogLocation {
}
}
/** The global logger for the extension. */
export const logger = new OutputChannelLogger("CodeQL Extension Log");
/** The logger for messages from the query server. */
export const queryServerLogger = new OutputChannelLogger("CodeQL Query Server");
/** The logger for messages from the language server. */
export const ideServerLogger = new OutputChannelLogger(
"CodeQL Language Server",
);
/** The logger for messages from tests. */
export const testLogger = new OutputChannelLogger("CodeQL Tests");
export type ProgressReporter = Progress<{ message: string }>;

View File

@@ -5,7 +5,7 @@ import {
ToCompareViewMessage,
QueryCompareResult,
} from "../pure/interface-types";
import { Logger } from "../logging";
import { Logger } from "../common";
import { CodeQLCliServer } from "../cli";
import { DatabaseManager } from "../databases";
import { jumpToLocation } from "../interface-utils";

View File

@@ -7,7 +7,7 @@ import {
ConfigurationTarget,
} from "vscode";
import { DistributionManager } from "./distribution";
import { logger } from "./logging";
import { logger } from "./common";
import { ONE_DAY_IN_MS } from "./pure/time";
export const ALL_SETTINGS: Setting[] = [];

View File

@@ -8,7 +8,7 @@ import { KeyType, kindOfKeyType, nameOfKeyType, tagOfKeyType } from "./keyType";
import { CodeQLCliServer } from "../cli";
import { DatabaseItem } from "../databases";
import { QlPacksForLanguage } from "../helpers";
import { logger } from "../logging";
import { logger } from "../common";
import { createInitialQueryInfo } from "../run-queries-shared";
import { CancellationToken, Uri } from "vscode";
import { ProgressCallback } from "../commandRunner";

View File

@@ -11,7 +11,7 @@ import { retry } from "@octokit/plugin-retry";
import { DatabaseManager, DatabaseItem } from "./databases";
import { showAndLogInformationMessage } from "./helpers";
import { reportStreamProgress, ProgressCallback } from "./commandRunner";
import { logger } from "./logging";
import { logger } from "./common";
import { tmpDir } from "./helpers";
import { Credentials } from "./authentication";
import { REPO_REGEX, getErrorMessage } from "./pure/helpers-pure";

View File

@@ -27,7 +27,7 @@ import {
isLikelyDbLanguageFolder,
showAndLogErrorMessage,
} from "./helpers";
import { logger } from "./logging";
import { logger } from "./common";
import {
importArchiveDatabase,
promptImportGithubDatabase,

View File

@@ -18,7 +18,7 @@ import {
encodeSourceArchiveUri,
} from "./archive-filesystem-provider";
import { DisposableObject } from "./pure/disposable-object";
import { Logger, logger } from "./logging";
import { Logger, logger } from "./common";
import { getErrorMessage } from "./pure/helpers-pure";
import { QueryRunner } from "./queryRunner";

View File

@@ -1,6 +1,6 @@
import { App, AppMode } from "../common/app";
import { isCanary, isNewQueryRunExperienceEnabled } from "../config";
import { logger } from "../logging";
import { logger } from "../common";
import { DisposableObject } from "../pure/disposable-object";
import { DbConfigStore } from "./config/db-config-store";
import { DbManager } from "./db-manager";

View File

@@ -1,5 +1,5 @@
import { DisposableObject } from "./pure/disposable-object";
import { logger } from "./logging";
import { logger } from "./common";
/**
* Base class for "discovery" operations, which scan the file system to find specific kinds of

View File

@@ -12,7 +12,7 @@ import {
showAndLogErrorMessage,
showAndLogWarningMessage,
} from "./helpers";
import { logger } from "./logging";
import { logger } from "./common";
import { getCodeQlCliVersion } from "./cli-version";
import { ProgressCallback, reportStreamProgress } from "./commandRunner";
import {

View File

@@ -79,7 +79,7 @@ import {
logger,
ProgressReporter,
queryServerLogger,
} from "./logging";
} from "./common";
import { QueryHistoryManager } from "./query-history";
import { CompletedLocalQueryInfo, LocalQueryInfo } from "./query-results";
import * as legacyQueryServer from "./legacy-query-server/queryserver-client";

View File

@@ -12,7 +12,7 @@ import {
} from "vscode";
import { CodeQLCliServer, QlpacksInfo } from "./cli";
import { UserCancellationException } from "./commandRunner";
import { logger } from "./logging";
import { logger } from "./common";
import { QueryMetadata } from "./pure/interface-types";
// Shared temporary folder for the extension.

View File

@@ -2,7 +2,7 @@ import { ProgressLocation, window } from "vscode";
import { StreamInfo } from "vscode-languageclient/node";
import * as cli from "./cli";
import { QueryServerConfig } from "./config";
import { ideServerLogger } from "./logging";
import { ideServerLogger } from "./common";
/**
* Managing the language server for CodeQL.

View File

@@ -17,7 +17,7 @@ import {
import { tryGetResolvableLocation, isLineColumnLoc } from "./pure/bqrs-utils";
import { DatabaseItem, DatabaseManager } from "./databases";
import { ViewSourceFileMsg } from "./pure/interface-types";
import { Logger } from "./logging";
import { Logger } from "./common";
import {
LineColumnLocation,
WholeFileLocation,

View File

@@ -34,7 +34,7 @@ import {
RawResultsSortState,
NavigationDirection,
} from "./pure/interface-types";
import { Logger } from "./logging";
import { Logger } from "./common";
import { commandRunner } from "./commandRunner";
import {
CompletedQueryInfo,

View File

@@ -1,4 +1,4 @@
import { Logger } from "./logging";
import { Logger } from "./common";
import * as cp from "child_process";
import { Disposable } from "vscode";
import { MessageConnection } from "vscode-jsonrpc";

View File

@@ -6,7 +6,7 @@ import { CancellationToken, commands } from "vscode";
import { createMessageConnection, RequestType } from "vscode-jsonrpc/node";
import * as cli from "../cli";
import { QueryServerConfig } from "../config";
import { Logger, ProgressReporter } from "../logging";
import { Logger, ProgressReporter } from "../common";
import {
completeQuery,
EvaluationResult,

View File

@@ -16,7 +16,7 @@ import {
} from "../helpers";
import { ProgressCallback } from "../commandRunner";
import { QueryMetadata } from "../pure/interface-types";
import { logger } from "../logging";
import { logger } from "../common";
import * as messages from "../pure/legacy-messages";
import { InitialQueryInfo, LocalQueryInfo } from "../query-results";
import * as qsClient from "./queryserver-client";

View File

@@ -5,7 +5,7 @@ import {
tmpDir,
} from "../helpers";
import { ProgressCallback, UserCancellationException } from "../commandRunner";
import { logger } from "../logging";
import { logger } from "../common";
import * as messages from "../pure/legacy-messages";
import * as qsClient from "./queryserver-client";
import * as tmp from "tmp-promise";

View File

@@ -8,7 +8,7 @@ import {
} from "./log-scanner";
import { PipelineInfo, SummarySymbols } from "./summary-parser";
import * as fs from "fs-extra";
import { logger } from "../logging";
import { logger } from "../common";
/**
* Compute the key used to find a predicate in the summary symbols.

View File

@@ -14,7 +14,7 @@ import {
} from "vscode";
import { DisposableObject } from "../pure/disposable-object";
import { commandRunner } from "../commandRunner";
import { logger } from "../logging";
import { logger } from "../common";
import { getErrorMessage } from "../pure/helpers-pure";
/** A `Position` within a specified file on disk. */

View File

@@ -6,7 +6,7 @@ import {
} from "./helpers";
import { QuickPickItem, window } from "vscode";
import { ProgressCallback, UserCancellationException } from "./commandRunner";
import { logger } from "./logging";
import { logger } from "./common";
const QUERY_PACKS = [
"codeql/cpp-queries",

View File

@@ -2,7 +2,7 @@ import * as fs from "fs-extra";
import * as os from "os";
import * as path from "path";
import { Disposable, ExtensionContext } from "vscode";
import { logger } from "./logging";
import { logger } from "./common";
import { QueryHistoryManager } from "./query-history";
const LAST_SCRUB_TIME_KEY = "lastScrubTime";

View File

@@ -24,7 +24,7 @@ import {
showAndLogWarningMessage,
showBinaryChoiceDialog,
} from "./helpers";
import { logger } from "./logging";
import { logger } from "./common";
import { URLSearchParams } from "url";
import { DisposableObject } from "./pure/disposable-object";
import { commandRunner } from "./commandRunner";

View File

@@ -6,7 +6,7 @@ import { CancellationToken, commands } from "vscode";
import { createMessageConnection, RequestType } from "vscode-jsonrpc/node";
import * as cli from "../cli";
import { QueryServerConfig } from "../config";
import { Logger, ProgressReporter } from "../logging";
import { Logger, ProgressReporter } from "../common";
import {
progress,
ProgressMessage,

View File

@@ -9,7 +9,7 @@ import {
showAndLogWarningMessage,
tryGetQueryMetadata,
} from "../helpers";
import { logger } from "../logging";
import { logger } from "../common";
import * as messages from "../pure/new-messages";
import * as legacyMessages from "../pure/legacy-messages";
import { InitialQueryInfo, LocalQueryInfo } from "../query-results";

View File

@@ -4,7 +4,7 @@ import * as path from "path";
import { CancellationToken, ExtensionContext } from "vscode";
import { Credentials } from "../authentication";
import { Logger } from "../logging";
import { Logger } from "../common";
import { downloadArtifactFromLink } from "./gh-api/gh-actions-api-client";
import { AnalysisSummary } from "./shared/remote-query-result";
import {

View File

@@ -1,5 +1,5 @@
import { CodeQLCliServer } from "../cli";
import { Logger } from "../logging";
import { Logger } from "../common";
import { transformBqrsResultSet } from "../pure/bqrs-cli-types";
import { AnalysisRawResults } from "./shared/analysis-result";
import { MAX_RAW_RESULTS } from "./shared/result-limits";

View File

@@ -12,7 +12,7 @@ import {
import { Credentials } from "../authentication";
import { UserCancellationException } from "../commandRunner";
import { showInformationMessageWithAction } from "../helpers";
import { logger } from "../logging";
import { logger } from "../common";
import { QueryHistoryManager } from "../query-history";
import { createGist } from "./gh-api/gh-api-client";
import { RemoteQueriesManager } from "./remote-queries-manager";

View File

@@ -6,7 +6,7 @@ import {
tmpDir,
} from "../../helpers";
import { Credentials } from "../../authentication";
import { logger } from "../../logging";
import { logger } from "../../common";
import { RemoteQueryWorkflowResult } from "../remote-query-workflow-result";
import { DownloadLink, createDownloadPath } from "../download-link";
import { RemoteQuery } from "../remote-query";

View File

@@ -20,7 +20,7 @@ import {
showAndLogInformationMessage,
showInformationMessageWithAction,
} from "../helpers";
import { Logger } from "../logging";
import { Logger } from "../common";
import { prepareRemoteQueryRun } from "./run-remote-query";
import { RemoteQueriesView } from "./remote-queries-view";
import { buildRemoteQueryEntity, RemoteQuery } from "./remote-query";

View File

@@ -1,6 +1,6 @@
import * as vscode from "vscode";
import { Credentials } from "../authentication";
import { Logger } from "../logging";
import { Logger } from "../common";
import { sleep } from "../pure/time";
import {
getWorkflowStatus,

View File

@@ -14,7 +14,7 @@ import {
RemoteQueryDownloadAnalysisResultsMessage,
RemoteQueryDownloadAllAnalysesResultsMessage,
} from "../pure/interface-types";
import { Logger } from "../logging";
import { Logger } from "../common";
import { assertNever } from "../pure/helpers-pure";
import {
AnalysisSummary,

View File

@@ -1,6 +1,6 @@
import * as fs from "fs-extra";
import { QuickPickItem, window } from "vscode";
import { logger } from "../logging";
import { logger } from "../common";
import {
getRemoteRepositoryLists,
getRemoteRepositoryListsPath,

View File

@@ -12,7 +12,7 @@ import {
} from "../helpers";
import { Credentials } from "../authentication";
import * as cli from "../cli";
import { logger } from "../logging";
import { logger } from "../common";
import {
getActionBranch,
getRemoteControllerRepo,

View File

@@ -3,7 +3,7 @@ import * as os from "os";
import * as path from "path";
import { Credentials } from "../authentication";
import { Logger } from "../logging";
import { Logger } from "../common";
import { AnalysisAlert, AnalysisRawResults } from "./shared/analysis-result";
import { sarifParser } from "../sarif-parser";
import { extractAnalysisAlerts } from "./sarif-processing";

View File

@@ -8,7 +8,7 @@ import {
} from "vscode";
import { URLSearchParams } from "url";
import { AbstractWebview, WebviewPanelConfig } from "../abstract-webview";
import { logger } from "../logging";
import { logger } from "../common";
import {
FromVariantAnalysisMessage,
ToVariantAnalysisMessage,

View File

@@ -25,7 +25,8 @@ import { CodeQLCliServer } from "./cli";
import { SELECT_QUERY_NAME } from "./contextual/locationFinder";
import { DatabaseManager } from "./databases";
import { DecodedBqrsChunk } from "./pure/bqrs-cli-types";
import { logger, Logger } from "./logging";
import { logger } from "./common";
import { Logger } from "./common";
import { generateSummarySymbolsFile } from "./log-insights/summary-parser";
import { asError } from "./pure/helpers-pure";

View File

@@ -14,7 +14,7 @@ import {
isIntegrationTestMode,
} from "./config";
import * as appInsights from "applicationinsights";
import { logger } from "./logging";
import { logger } from "./common";
import { UserCancellationException } from "./commandRunner";
import { showBinaryChoiceWithUrlDialog } from "./helpers";

View File

@@ -33,7 +33,7 @@ import {
showAndLogErrorMessage,
showAndLogWarningMessage,
} from "./helpers";
import { testLogger } from "./logging";
import { testLogger } from "./common";
import { DatabaseItem, DatabaseManager } from "./databases";
/**

View File

@@ -16,7 +16,7 @@ import { TestTreeNode } from "./test-tree-node";
import { DisposableObject } from "./pure/disposable-object";
import { UIService } from "./vscode-utils/ui-service";
import { QLTestAdapter, getExpectedFile, getActualFile } from "./test-adapter";
import { logger } from "./logging";
import { logger } from "./common";
type VSCodeTestEvent =
| TestRunStartedEvent

View File

@@ -11,7 +11,7 @@ import { extensions } from "vscode";
import { CodeQLExtensionInterface } from "../../extension";
import { describeWithCodeQL } from "../cli";
import { QueryServerClient } from "../../legacy-query-server/queryserver-client";
import { logger, ProgressReporter } from "../../logging";
import { logger, ProgressReporter } from "../../common";
const baseDir = path.join(__dirname, "../../../test/data");

View File

@@ -9,7 +9,7 @@ import { extensions, Uri } from "vscode";
import { CodeQLExtensionInterface } from "../../extension";
import { describeWithCodeQL } from "../cli";
import { QueryServerClient } from "../../query-server/queryserver-client";
import { logger, ProgressReporter } from "../../logging";
import { logger, ProgressReporter } from "../../common";
import { QueryResultType } from "../../pure/new-messages";
import { cleanDatabases, dbLoc, storagePath } from "./global.helper";
import { importArchiveDatabase } from "../../databaseFetcher";

View File

@@ -21,7 +21,7 @@ import { UserCancellationException } from "../../../commandRunner";
import * as ghApiClient from "../../../remote-queries/gh-api/gh-api-client";
import { Repository } from "../../../remote-queries/gh-api/repository";
import { createMockExtensionContext } from "../../no-workspace";
import { OutputChannelLogger } from "../../../logging";
import { OutputChannelLogger } from "../../../common";
import { RemoteQueriesSubmission } from "../../../remote-queries/shared/remote-queries";
import { readBundledPack } from "../../utils/bundled-pack-helpers";
import { RemoteQueriesManager } from "../../../remote-queries/remote-queries-manager";

View File

@@ -8,7 +8,7 @@ import {
window,
} from "vscode";
import { CodeQLExtensionInterface } from "../../../extension";
import { logger } from "../../../logging";
import { logger } from "../../../common";
import * as config from "../../../config";
import {
setRemoteControllerRepo,

View File

@@ -1,6 +1,6 @@
import { extensions } from "vscode";
import { CodeQLExtensionInterface } from "../../../extension";
import { logger } from "../../../logging";
import { logger } from "../../../common";
import { Credentials } from "../../../authentication";
import * as fs from "fs-extra";
import * as path from "path";

View File

@@ -11,7 +11,7 @@ import {
FullDatabaseOptions,
findSourceArchive,
} from "../../databases";
import { Logger } from "../../logging";
import { Logger } from "../../common";
import { ProgressCallback } from "../../commandRunner";
import { CodeQLCliServer, DbInfo } from "../../cli";
import {

View File

@@ -3,7 +3,7 @@ import * as fetch from "node-fetch";
import * as semver from "semver";
import * as helpers from "../../helpers";
import { logger } from "../../logging";
import { logger } from "../../common";
import * as fs from "fs-extra";
import * as os from "os";
import {

View File

@@ -2,7 +2,7 @@ import * as fs from "fs-extra";
import * as path from "path";
import * as vscode from "vscode";
import { logger } from "../../logging";
import { logger } from "../../common";
import { registerQueryHistoryScrubber } from "../../query-history-scrubber";
import {
HistoryTreeDataProvider,

View File

@@ -1,7 +1,7 @@
import * as fs from "fs-extra";
import * as path from "path";
import * as tmp from "tmp";
import { OutputChannelLogger } from "../../src/logging";
import { OutputChannelLogger } from "../../../src/common";
jest.setTimeout(999999);