@qawolf/logger
Advanced tools
Comparing version 0.8.1 to 0.8.2
import { Logger } from "./Logger"; | ||
export declare const browserLogger: Logger; | ||
export declare const logger: Logger; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const Logger_1 = require("./Logger"); | ||
exports.logger = new Logger_1.Logger(); | ||
exports.browserLogger = new Logger_1.Logger("browser"); | ||
exports.logger = new Logger_1.Logger("qawolf"); | ||
//# sourceMappingURL=index.js.map |
@@ -0,8 +1,17 @@ | ||
declare type LogCallback = (level: string, message: string) => void; | ||
export declare class Logger { | ||
private _logger; | ||
constructor(); | ||
private _name; | ||
private _logCallbacks; | ||
constructor(name: string); | ||
private ensureTransport; | ||
get numTransports(): number; | ||
debug(message: string): void; | ||
error(message: string): void; | ||
onLog(callback: LogCallback): void; | ||
info(message: string): void; | ||
log(level: string, message: string): void; | ||
verbose(message: string): void; | ||
warn(message: string): void; | ||
} | ||
export {}; |
@@ -9,24 +9,44 @@ "use strict"; | ||
const winston_1 = __importDefault(require("winston")); | ||
const LogLevels = ["debug", "error", "info", "verbose", "warn"]; | ||
class Logger { | ||
constructor() { | ||
this._logger = winston_1.default.createLogger({ | ||
transports: [ | ||
config_1.CONFIG.artifactPath | ||
? createFileTransport(config_1.CONFIG.artifactPath) | ||
: createConsoleTransport() | ||
] | ||
}); | ||
constructor(name) { | ||
this._logCallbacks = []; | ||
this._logger = winston_1.default.createLogger({ transports: [] }); | ||
this._name = name; | ||
} | ||
ensureTransport() { | ||
if (this._logger.transports.length) | ||
return; | ||
const transport = config_1.CONFIG.artifactPath | ||
? createFileTransport(config_1.CONFIG.artifactPath, this._name) | ||
: createConsoleTransport(); | ||
this._logger.add(transport); | ||
} | ||
get numTransports() { | ||
return this._logger.transports.length; | ||
} | ||
debug(message) { | ||
this._logger.debug(message); | ||
this.log("debug", message); | ||
} | ||
error(message) { | ||
this._logger.error(message); | ||
this.log("error", message); | ||
} | ||
onLog(callback) { | ||
this._logCallbacks.push(callback); | ||
} | ||
info(message) { | ||
this._logger.info(message); | ||
this.log("info", message); | ||
} | ||
log(level, message) { | ||
this.ensureTransport(); | ||
const logLevel = LogLevels.includes(level) ? level : "info"; | ||
this._logger.log(logLevel, message); | ||
this._logCallbacks.forEach(cb => cb(level, message)); | ||
} | ||
verbose(message) { | ||
this._logger.verbose(message); | ||
this.log("verbose", message); | ||
} | ||
warn(message) { | ||
this.log("warn", message); | ||
} | ||
} | ||
@@ -39,6 +59,6 @@ exports.Logger = Logger; | ||
}); | ||
const createFileTransport = (path) => { | ||
const createFileTransport = (path, name) => { | ||
fs_extra_1.ensureDirSync(path); | ||
return new winston_1.default.transports.File({ | ||
filename: `${path}/${Date.now()}.log`, | ||
filename: `${path}/${name}_${Date.now()}.log`, | ||
format: winston_1.default.format.combine(winston_1.default.format.timestamp(), formatPrint), | ||
@@ -45,0 +65,0 @@ level: config_1.CONFIG.logLevel || "verbose" |
{ | ||
"name": "@qawolf/logger", | ||
"description": "qawolf logger (node only)", | ||
"version": "0.8.1", | ||
"version": "0.8.2", | ||
"license": "BSD-3.0", | ||
@@ -12,2 +12,5 @@ "main": "./lib/index.js", | ||
], | ||
"scripts": { | ||
"test": "jest" | ||
}, | ||
"repository": { | ||
@@ -24,6 +27,6 @@ "type": "git", | ||
"dependencies": { | ||
"@qawolf/config": "^0.8.1", | ||
"@qawolf/config": "^0.8.2", | ||
"winston": "^3.2.1" | ||
}, | ||
"gitHead": "d4bea87a2668278cc4ab832e308f9f2ea90fc255" | ||
"gitHead": "74449a08eae50066278c613ca19b7c05050bc551" | ||
} |
import { Logger } from "./Logger"; | ||
// export singleton | ||
export const logger = new Logger(); | ||
export const browserLogger = new Logger("browser"); | ||
export const logger = new Logger("qawolf"); |
@@ -5,30 +5,60 @@ import { CONFIG } from "@qawolf/config"; | ||
const LogLevels = ["debug", "error", "info", "verbose", "warn"]; | ||
type LogCallback = (level: string, message: string) => void; | ||
export class Logger { | ||
private _logger: winston.Logger; | ||
private _name: string; | ||
private _logCallbacks: LogCallback[] = []; | ||
constructor() { | ||
this._logger = winston.createLogger({ | ||
transports: [ | ||
CONFIG.artifactPath | ||
? createFileTransport(CONFIG.artifactPath) | ||
: createConsoleTransport() | ||
] | ||
}); | ||
constructor(name: string) { | ||
this._logger = winston.createLogger({ transports: [] }); | ||
this._name = name; | ||
} | ||
debug(message: string) { | ||
this._logger.debug(message); | ||
private ensureTransport() { | ||
if (this._logger.transports.length) return; | ||
const transport = CONFIG.artifactPath | ||
? createFileTransport(CONFIG.artifactPath, this._name) | ||
: createConsoleTransport(); | ||
this._logger.add(transport); | ||
} | ||
error(message: string) { | ||
this._logger.error(message); | ||
public get numTransports() { | ||
return this._logger.transports.length; | ||
} | ||
info(message: string) { | ||
this._logger.info(message); | ||
public debug(message: string) { | ||
this.log("debug", message); | ||
} | ||
verbose(message: string) { | ||
this._logger.verbose(message); | ||
public error(message: string) { | ||
this.log("error", message); | ||
} | ||
public onLog(callback: LogCallback) { | ||
this._logCallbacks.push(callback); | ||
} | ||
public info(message: string) { | ||
this.log("info", message); | ||
} | ||
public log(level: string, message: string) { | ||
this.ensureTransport(); | ||
const logLevel = LogLevels.includes(level) ? level : "info"; | ||
this._logger.log(logLevel, message); | ||
this._logCallbacks.forEach(cb => cb(level, message)); | ||
} | ||
public verbose(message: string) { | ||
this.log("verbose", message); | ||
} | ||
public warn(message: string) { | ||
this.log("warn", message); | ||
} | ||
} | ||
@@ -50,7 +80,7 @@ | ||
const createFileTransport = (path: string) => { | ||
const createFileTransport = (path: string, name: string) => { | ||
ensureDirSync(path); | ||
return new winston.transports.File({ | ||
filename: `${path}/${Date.now()}.log`, | ||
filename: `${path}/${name}_${Date.now()}.log`, | ||
format: winston.format.combine(winston.format.timestamp(), formatPrint), | ||
@@ -57,0 +87,0 @@ level: CONFIG.logLevel || "verbose" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
10313
161
Updated@qawolf/config@^0.8.2