microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0.4.1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/common/log/loggers.ts

151lines · modeblame

898cb3c6Meena Kunnathur Balakrishnan10 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4/**
5* Formatter for the Output channel.
6*/
7import {LogHelper, LogLevel} from "./logHelper";
8
9export interface ILogger {
10logMessage: (message: string, formatMessage?: boolean) => void;
11logError: (errorMessage: string, error?: any, logStack?: boolean) => void;
99e41548Meena Kunnathur Balakrishnan10 years ago12logStreamData: (data: Buffer, stream: NodeJS.WritableStream) => void;
831f4a85Patricio Beltran9 years ago13logString: (data: string) => void;
cf138e34Meena Kunnathur Balakrishnan10 years ago14logInternalMessage: (logLevel: LogLevel, message: string) => void;
f1e34747Meena Kunnathur Balakrishnan10 years ago15setFocusOnLogChannel: () => void;
898cb3c6Meena Kunnathur Balakrishnan10 years ago16}
17
18export class ConsoleLogger implements ILogger {
40e4b177Patricio Beltran10 years ago19public logMessage(message: string, formatMessage: boolean = true) {
898cb3c6Meena Kunnathur Balakrishnan10 years ago20console.log(formatMessage ?
21this.getFormattedMessage(message) :
22message);
23}
24
25public logError(errorMessage: string, error?: any, logStack: boolean = true) {
26console.error(this.getFormattedMessage(errorMessage));
27
b6247839Meena Kunnathur Balakrishnan10 years ago28// Print the error stack if necessary
898cb3c6Meena Kunnathur Balakrishnan10 years ago29if (logStack && error && (<Error>error).stack) {
30console.error(`Stack: ${(<Error>error).stack}`);
31}
32}
33
99e41548Meena Kunnathur Balakrishnan10 years ago34public logStreamData(data: Buffer, stream: NodeJS.WritableStream) {
35stream.write(data.toString());
36}
37
831f4a85Patricio Beltran9 years ago38public logString(data: string) {
39this.logMessage(data, false);
40}
41
898cb3c6Meena Kunnathur Balakrishnan10 years ago42public logInternalMessage(logLevel: LogLevel, message: string) {
43this.logMessage(this.getFormattedInternalMessage(logLevel, message), /* formatMessage */ false);
44}
45
f1e34747Meena Kunnathur Balakrishnan10 years ago46public setFocusOnLogChannel() {
cf138e34Meena Kunnathur Balakrishnan10 years ago47// Do nothing - console takes focus automatically upon logging
48return;
49}
50
898cb3c6Meena Kunnathur Balakrishnan10 years ago51private getFormattedMessage(message: string) {
52return `${LogHelper.MESSAGE_TAG} ${message}\n`;
53}
54
55private getFormattedInternalMessage(logLevel: LogLevel, message: string) {
d206c683Meena Kunnathur Balakrishnan10 years ago56return (`${LogHelper.INTERNAL_TAG} [${LogLevel[logLevel]}] ${message}\n`);
898cb3c6Meena Kunnathur Balakrishnan10 years ago57}
58}
59
60export class StreamLogger implements ILogger {
61private stream: NodeJS.WritableStream;
62constructor(stream: NodeJS.WritableStream) {
63this.stream = stream;
64}
40e4b177Patricio Beltran10 years ago65public logMessage(message: string, formatMessage: boolean = true) {
898cb3c6Meena Kunnathur Balakrishnan10 years ago66this.stream.write(formatMessage ?
67this.getFormattedMessage(message) :
68message);
69}
70
71public logError(errorMessage: string, error?: any, logStack: boolean = true) {
72this.logMessage(errorMessage);
73
74if (logStack && error && (<Error>error).stack) {
75this.logMessage(`Stack: ${(<Error>error).stack}`, /* formatMessage */ false);
76}
77}
78
99e41548Meena Kunnathur Balakrishnan10 years ago79public logStreamData(data: Buffer, stream: NodeJS.WritableStream) {
80stream.write(data.toString());
81}
82
831f4a85Patricio Beltran9 years ago83public logString(data: string) {
84this.logMessage(data, false);
85}
86
898cb3c6Meena Kunnathur Balakrishnan10 years ago87public logInternalMessage(logLevel: LogLevel, message: string) {
88this.logMessage(this.getFormattedInternalMessage(logLevel, message), /* formatMessage */ false);
89}
90
91public getFormattedMessage(message: string) {
92return `${LogHelper.MESSAGE_TAG} ${message}\n`;
93}
94
95public getFormattedInternalMessage(logLevel: LogLevel, message: string) {
96return (`${LogHelper.INTERNAL_TAG} [${logLevel}] ${message}\n`);
97}
cf138e34Meena Kunnathur Balakrishnan10 years ago98
f1e34747Meena Kunnathur Balakrishnan10 years ago99public setFocusOnLogChannel() {
40e4b177Patricio Beltran10 years ago100// Do nothing
101return;
102}
103}
104
105export class NodeDebugAdapterLogger implements ILogger {
e45838cbVladimir Kotikov9 years ago106private debugSession: ChromeDebuggerCorePackage.ChromeDebugSession;
107private debugAdapterPackage: typeof VSCodeDebugAdapterPackage;
40e4b177Patricio Beltran10 years ago108
e45838cbVladimir Kotikov9 years ago109public constructor(adapterPackage: typeof VSCodeDebugAdapterPackage, debugSession: ChromeDebuggerCorePackage.ChromeDebugSession) {
40e4b177Patricio Beltran10 years ago110this.debugAdapterPackage = adapterPackage;
111this.debugSession = debugSession;
112}
113
114public logMessage(message: string, formatMessage: boolean = true, destination: string = "stdout") {
115const outputEventMessage = formatMessage ? this.getFormattedMessage(message) : message;
116this.debugSession.sendEvent(new this.debugAdapterPackage.OutputEvent(outputEventMessage, destination));
117}
118
119public logError(errorMessage: string, error?: any, logStack: boolean = true) {
120this.logMessage(`${LogHelper.ERROR_TAG} ${errorMessage}\n`, false, "stderr");
121
122if (logStack && error && (<Error>error).stack) {
123this.logMessage(`Stack: ${(<Error>error).stack}`, false);
124}
125}
126
127public logStreamData(data: Buffer, stream: NodeJS.WritableStream) {
128this.logMessage(data.toString(), false);
129}
130
831f4a85Patricio Beltran9 years ago131public logString(data: string) {
132this.logMessage(data, false);
133}
134
40e4b177Patricio Beltran10 years ago135public logInternalMessage(logLevel: LogLevel, message: string) {
136this.logMessage(this.getFormattedInternalMessage(logLevel, message), false);
137}
138
139public getFormattedMessage(message: string) {
140return `${LogHelper.MESSAGE_TAG} ${message}\n`;
141}
142
143public getFormattedInternalMessage(logLevel: LogLevel, message: string) {
144return (`${LogHelper.INTERNAL_TAG} [${logLevel}] ${message}\n`);
145}
146
147public setFocusOnLogChannel() {
148// Do nothing
cf138e34Meena Kunnathur Balakrishnan10 years ago149return;
150}
e45838cbVladimir Kotikov9 years ago151}