microsoft/vscode-react-native

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0.1.3

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/common/log/loggers.ts

94lines · 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;
cf138e34Meena Kunnathur Balakrishnan10 years ago13logInternalMessage: (logLevel: LogLevel, message: string) => void;
f1e34747Meena Kunnathur Balakrishnan10 years ago14setFocusOnLogChannel: () => void;
898cb3c6Meena Kunnathur Balakrishnan10 years ago15}
16
17export class ConsoleLogger implements ILogger {
18public logMessage(message: string, formatMessage: boolean = true ) {
19console.log(formatMessage ?
20this.getFormattedMessage(message) :
21message);
22}
23
24public logError(errorMessage: string, error?: any, logStack: boolean = true) {
25console.error(this.getFormattedMessage(errorMessage));
26
b6247839Meena Kunnathur Balakrishnan10 years ago27// Print the error stack if necessary
898cb3c6Meena Kunnathur Balakrishnan10 years ago28if (logStack && error && (<Error>error).stack) {
29console.error(`Stack: ${(<Error>error).stack}`);
30}
31}
32
99e41548Meena Kunnathur Balakrishnan10 years ago33public logStreamData(data: Buffer, stream: NodeJS.WritableStream) {
34stream.write(data.toString());
35}
36
898cb3c6Meena Kunnathur Balakrishnan10 years ago37public logInternalMessage(logLevel: LogLevel, message: string) {
38this.logMessage(this.getFormattedInternalMessage(logLevel, message), /* formatMessage */ false);
39}
40
f1e34747Meena Kunnathur Balakrishnan10 years ago41public setFocusOnLogChannel() {
cf138e34Meena Kunnathur Balakrishnan10 years ago42// Do nothing - console takes focus automatically upon logging
43return;
44}
45
898cb3c6Meena Kunnathur Balakrishnan10 years ago46private getFormattedMessage(message: string) {
47return `${LogHelper.MESSAGE_TAG} ${message}\n`;
48}
49
50private getFormattedInternalMessage(logLevel: LogLevel, message: string) {
d206c683Meena Kunnathur Balakrishnan10 years ago51return (`${LogHelper.INTERNAL_TAG} [${LogLevel[logLevel]}] ${message}\n`);
898cb3c6Meena Kunnathur Balakrishnan10 years ago52}
53}
54
55export class StreamLogger implements ILogger {
56private stream: NodeJS.WritableStream;
57constructor(stream: NodeJS.WritableStream) {
58this.stream = stream;
59}
60public logMessage(message: string, formatMessage: boolean = true ) {
61this.stream.write(formatMessage ?
62this.getFormattedMessage(message) :
63message);
64}
65
66public logError(errorMessage: string, error?: any, logStack: boolean = true) {
67this.logMessage(errorMessage);
68
69if (logStack && error && (<Error>error).stack) {
70this.logMessage(`Stack: ${(<Error>error).stack}`, /* formatMessage */ false);
71}
72}
73
99e41548Meena Kunnathur Balakrishnan10 years ago74public logStreamData(data: Buffer, stream: NodeJS.WritableStream) {
75stream.write(data.toString());
76}
77
898cb3c6Meena Kunnathur Balakrishnan10 years ago78public logInternalMessage(logLevel: LogLevel, message: string) {
79this.logMessage(this.getFormattedInternalMessage(logLevel, message), /* formatMessage */ false);
80}
81
82public getFormattedMessage(message: string) {
83return `${LogHelper.MESSAGE_TAG} ${message}\n`;
84}
85
86public getFormattedInternalMessage(logLevel: LogLevel, message: string) {
87return (`${LogHelper.INTERNAL_TAG} [${logLevel}] ${message}\n`);
88}
cf138e34Meena Kunnathur Balakrishnan10 years ago89
f1e34747Meena Kunnathur Balakrishnan10 years ago90public setFocusOnLogChannel() {
cf138e34Meena Kunnathur Balakrishnan10 years ago91// Do nothing
92return;
93}
898cb3c6Meena Kunnathur Balakrishnan10 years ago94}