message: Don't add unnecessary noise to the OmniSharp log
diff: @@ -13,6 +13,7 @@ import { DelayTracker } from './delayTracker';
  import { LaunchTarget, findLaunchTargets } from './launcher';
  import { Request, RequestQueueCollection } from './requestQueue';
  import TelemetryReporter from 'vscode-extension-telemetry';
  +import * as os from 'os';
  import * as path from 'path';
  import * as protocol from './protocol';
  import * as vscode from 'vscode';
  @@ -569,13 +570,34 @@ export class OmniSharpServer {
  return id;
  }
  + private static getLogLevelPrefix(logLevel: string) {
  + switch (logLevel) {
  + case "TRACE": return "trce";
  + case "DEBUG": return "dbug";
  + case "INFORMATION": return "info";
  + case "WARNING": return "warn";
  + case "ERROR": return "fail";
  + case "CRITICAL": return "crit";
  + default: throw new Error(`Unknown log level value: ${logLevel}`);
  + }
  + }
  +
  + private _isFilterableOutput(logLevel: string, name: string, message: string) {
  + // filter messages like: /codecheck: 200 339ms
  + const timing200Pattern = /^\/[\/\w]+: 200 \d+ms/;
  +
  + return logLevel === "INFORMATION"
  + && name === "OmniSharp.Middleware.LoggingMiddleware"
  + && timing200Pattern.test(message);
  + }
  +
  private _logOutput(logLevel: string, name: string, message: string) {
  - const timing200Pattern = /^\[INFORMATION:OmniSharp.Middleware.LoggingMiddleware\] \/[\/\w]+: 200 \d+ms/;
  + if (this._debugMode || !this._isFilterableOutput(logLevel, name, message)) {
  + let output = `[${OmniSharpServer.getLogLevelPrefix(logLevel)}]: ${name}${os.EOL}${message}`;
  - const output = `[${logLevel}:${name}] ${message}`;
  + const newLinePlusPadding = os.EOL + " ";
  + output = output.replace(os.EOL, newLinePlusPadding);
  - // strip stuff like: /codecheck: 200 339ms
  - if (this._debugMode || !timing200Pattern.test(output)) {
  this._logger.appendLine(output);
  }
  }
  