@raincatcher/logger
Version:
Logger facade used by RainCatcher modules
64 lines (54 loc) • 1.36 kB
text/typescript
/**
* @module @raincatcher/logger
*/
import { Logger } from './Logger';
// tslint:disable-next-line:no-var-requires
const logger: any = require('loglevel');
// imported from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/loglevel/index.d.ts#L9
// see https://issues.jboss.org/browse/RAINCATCH-1183 and https://issues.jboss.org/browse/RAINCATCH-1182 for reasons
export const enum LogLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
WARN = 3,
ERROR = 4,
SILENT = 5
}
/**
* Default client (browser) logger implementation using loglevel library
*
* @see Logger
*/
export class ClientLogger implements Logger {
constructor(level: LogLevel = LogLevel.WARN) {
logger.setLevel(level);
}
public debug(message: any, options?: any): void {
if (options) {
logger.info(message, options);
} else {
logger.info(message);
}
}
public error(message: any, options?: any): void {
if (options) {
logger.error(message, options);
} else {
logger.error(message);
}
}
public info(message: any, options?: any): void {
if (options) {
logger.info(message, options);
} else {
logger.info(message);
}
}
public warn(message: any, options?: any): void {
if (options) {
logger.warn(message, options);
} else {
logger.warn(message);
}
}
}