@quatrain/log 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,4 @@
1
- export declare enum LogLevel {
2
- TRACE = 0,
3
- DEBUG = 1,
4
- INFO = 2,
5
- WARN = 3,
6
- ERROR = 4,
7
- SILENT = 5
8
- }
1
+ import { LogLevel } from './Log';
9
2
  export interface LoggerType {
10
3
  log(message: string): void;
11
4
  debug(message: string): void;
@@ -14,19 +7,20 @@ export interface LoggerType {
14
7
  error(message: string): void;
15
8
  trace(message: string): void;
16
9
  }
17
- export declare class AbstractLoggerAdapter {
10
+ export declare const loglevelNames: string[];
11
+ export declare abstract class AbstractLoggerAdapter implements LoggerType {
18
12
  protected _me: string;
19
13
  protected _logLevel: LogLevel;
20
14
  protected _logger: any;
21
15
  constructor(prefix?: string, level?: LogLevel);
22
- timestamp: () => string;
23
- formatLogMessage: (message: any) => string;
16
+ logLevel(level: LogLevel): void;
17
+ formatLogMessage: (messages: any[], loglevel?: LogLevel) => string;
24
18
  /**
25
19
  * Log message using defined logger
26
20
  * @param message string | object
27
21
  * @param level string
28
22
  */
29
- log(message: any, level?: LogLevel): void;
23
+ log(...messages: any): void;
30
24
  debug(message: any): void;
31
25
  warn(message: any): void;
32
26
  info(message: any): void;
@@ -1,25 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractLoggerAdapter = exports.LogLevel = void 0;
3
+ exports.AbstractLoggerAdapter = exports.loglevelNames = void 0;
4
4
  const Log_1 = require("./Log");
5
- var LogLevel;
6
- (function (LogLevel) {
7
- LogLevel[LogLevel["TRACE"] = 0] = "TRACE";
8
- LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG";
9
- LogLevel[LogLevel["INFO"] = 2] = "INFO";
10
- LogLevel[LogLevel["WARN"] = 3] = "WARN";
11
- LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
12
- LogLevel[LogLevel["SILENT"] = 5] = "SILENT";
13
- })(LogLevel || (exports.LogLevel = LogLevel = {}));
5
+ exports.loglevelNames = [
6
+ 'TRACE',
7
+ 'DEBUG',
8
+ 'INFO',
9
+ 'WARN',
10
+ 'ERROR',
11
+ 'SILENT',
12
+ ];
14
13
  class AbstractLoggerAdapter {
15
- constructor(prefix = '', level = LogLevel.WARN) {
14
+ constructor(prefix = '', level = Log_1.LogLevel.WARN) {
16
15
  this._me = '';
17
- this._logLevel = LogLevel.WARN;
16
+ this._logLevel = Log_1.LogLevel.WARN;
18
17
  this._logger = undefined;
19
- // How timestamp are formatted
20
- this.timestamp = () => new Date().toISOString();
21
- this.formatLogMessage = (message) => `${Log_1.Log.timestamp()} - [${this._me}] ${typeof message === 'string' ? message : JSON.stringify(message)}`;
18
+ this.formatLogMessage = (messages, loglevel = 3) => {
19
+ messages.unshift(`${Log_1.Log.timestamp()} - [${this._me}]`);
20
+ const strs = messages.map((message) => {
21
+ return typeof message !== 'object' ? message : JSON.stringify(message);
22
+ });
23
+ return strs.join(' ');
24
+ };
22
25
  this._me = prefix;
26
+ }
27
+ logLevel(level) {
23
28
  this._logLevel = level;
24
29
  }
25
30
  /**
@@ -27,23 +32,11 @@ class AbstractLoggerAdapter {
27
32
  * @param message string | object
28
33
  * @param level string
29
34
  */
30
- log(message, level = LogLevel.WARN) {
31
- this._logger.log(this.formatLogMessage(message));
32
- }
33
- debug(message) {
34
- this._logger.debug(this.formatLogMessage(message));
35
- }
36
- warn(message) {
37
- this._logger.warn(this.formatLogMessage(message));
38
- }
39
- info(message) {
40
- this._logger.info(this.formatLogMessage(message));
41
- }
42
- error(message) {
43
- this._logger.error(this.formatLogMessage(message));
44
- }
45
- trace(message) {
46
- this._logger.trace(this.formatLogMessage(message));
47
- }
35
+ log(...messages) { }
36
+ debug(message) { }
37
+ warn(message) { }
38
+ info(message) { }
39
+ error(message) { }
40
+ trace(message) { }
48
41
  }
49
42
  exports.AbstractLoggerAdapter = AbstractLoggerAdapter;
@@ -1,4 +1,17 @@
1
1
  import { AbstractLoggerAdapter } from './AbstractLoggerAdapter';
2
+ import { LogLevel } from './Log';
2
3
  export declare class DefaultLoggerAdapter extends AbstractLoggerAdapter {
3
- constructor();
4
+ constructor(prefix?: string, level?: LogLevel);
5
+ /**
6
+ * Log message using defined logger
7
+ * @param messages array
8
+ * @param level LogLevel
9
+ */
10
+ log(messages: any[], level?: LogLevel): void;
11
+ logLevel(level: LogLevel): void;
12
+ debug(...messages: any): void;
13
+ warn(...messages: any): void;
14
+ info(...messages: any): void;
15
+ error(...messages: any): void;
16
+ trace(...messages: any): void;
4
17
  }
@@ -6,10 +6,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DefaultLoggerAdapter = void 0;
7
7
  const AbstractLoggerAdapter_1 = require("./AbstractLoggerAdapter");
8
8
  const loglevel_1 = __importDefault(require("loglevel"));
9
+ const Log_1 = require("./Log");
9
10
  class DefaultLoggerAdapter extends AbstractLoggerAdapter_1.AbstractLoggerAdapter {
10
- constructor() {
11
- super('Log');
11
+ constructor(prefix = '', level = Log_1.LogLevel.DEBUG) {
12
+ super(prefix, level);
12
13
  this._logger = loglevel_1.default;
14
+ this._logger.setLevel(level);
15
+ }
16
+ /**
17
+ * Log message using defined logger
18
+ * @param messages array
19
+ * @param level LogLevel
20
+ */
21
+ log(messages, level = this._logLevel) {
22
+ const message = this.formatLogMessage(messages);
23
+ switch (level) {
24
+ case Log_1.LogLevel.TRACE:
25
+ this._logger.trace(message);
26
+ break;
27
+ case Log_1.LogLevel.DEBUG:
28
+ this._logger.debug(message);
29
+ break;
30
+ case Log_1.LogLevel.INFO:
31
+ this._logger.info(message);
32
+ break;
33
+ case Log_1.LogLevel.WARN:
34
+ this._logger.warn(message);
35
+ break;
36
+ case Log_1.LogLevel.ERROR:
37
+ this._logger.error(message);
38
+ break;
39
+ default:
40
+ this._logger.log(message);
41
+ break;
42
+ }
43
+ }
44
+ logLevel(level) {
45
+ super.logLevel(level);
46
+ this._logger.setLevel(level);
47
+ }
48
+ debug(...messages) {
49
+ this.log(messages[0], Log_1.LogLevel.DEBUG);
50
+ }
51
+ warn(...messages) {
52
+ this.log(messages[0], Log_1.LogLevel.WARN);
53
+ }
54
+ info(...messages) {
55
+ this.log(messages[0], Log_1.LogLevel.INFO);
56
+ }
57
+ error(...messages) {
58
+ this.log(messages[0], Log_1.LogLevel.ERROR);
59
+ }
60
+ trace(...messages) {
61
+ this.log(messages[0], Log_1.LogLevel.TRACE);
13
62
  }
14
63
  }
15
64
  exports.DefaultLoggerAdapter = DefaultLoggerAdapter;
package/lib/Log.d.ts CHANGED
@@ -1,12 +1,20 @@
1
- import { AbstractLoggerAdapter } from "./AbstractLoggerAdapter";
1
+ import { AbstractLoggerAdapter } from './AbstractLoggerAdapter';
2
+ export declare enum LogLevel {
3
+ TRACE = 0,
4
+ DEBUG = 1,
5
+ INFO = 2,
6
+ WARN = 3,
7
+ ERROR = 4,
8
+ SILENT = 5
9
+ }
2
10
  export type LoggerRegistry<T extends AbstractLoggerAdapter> = {
3
11
  [x: string]: T;
4
12
  };
5
13
  export declare class Log {
6
14
  static defaultLogger: string;
7
15
  protected static _loggers: LoggerRegistry<any>;
8
- static timestamp: () => string;
9
- static addLogger(logger: AbstractLoggerAdapter, alias: string, setDefault?: boolean): void;
16
+ static timestamp(): string;
17
+ static addLogger(alias: string, logger?: AbstractLoggerAdapter, setDefault?: boolean): any;
10
18
  static getLogger<T extends AbstractLoggerAdapter>(alias?: string): T;
11
19
  /**
12
20
  * Log message using defined logger
package/lib/Log.js CHANGED
@@ -1,13 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Log = void 0;
3
+ exports.Log = exports.LogLevel = void 0;
4
4
  const DefaultLoggerAdapter_1 = require("./DefaultLoggerAdapter");
5
+ var LogLevel;
6
+ (function (LogLevel) {
7
+ LogLevel[LogLevel["TRACE"] = 0] = "TRACE";
8
+ LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG";
9
+ LogLevel[LogLevel["INFO"] = 2] = "INFO";
10
+ LogLevel[LogLevel["WARN"] = 3] = "WARN";
11
+ LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
12
+ LogLevel[LogLevel["SILENT"] = 5] = "SILENT";
13
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
5
14
  class Log {
6
- static addLogger(logger, alias, setDefault = false) {
15
+ // How timestamp are formatted
16
+ static timestamp() {
17
+ return new Date().toISOString();
18
+ }
19
+ static addLogger(alias, logger = new DefaultLoggerAdapter_1.DefaultLoggerAdapter(), setDefault = false) {
7
20
  this._loggers[alias] = logger;
8
21
  if (setDefault) {
9
22
  this.defaultLogger = alias;
10
23
  }
24
+ return this._loggers[alias];
11
25
  }
12
26
  static getLogger(alias = this.defaultLogger) {
13
27
  if (this._loggers[alias]) {
@@ -43,7 +57,5 @@ class Log {
43
57
  exports.Log = Log;
44
58
  Log.defaultLogger = '@default';
45
59
  Log._loggers = {
46
- default: new DefaultLoggerAdapter_1.DefaultLoggerAdapter()
60
+ '@default': new DefaultLoggerAdapter_1.DefaultLoggerAdapter(),
47
61
  };
48
- // How timestamp are formatted
49
- Log.timestamp = () => new Date().toISOString();
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import { Log } from './Log';
2
- import { LogLevel, AbstractLoggerAdapter } from './AbstractLoggerAdapter';
3
- export { Log, AbstractLoggerAdapter, LogLevel };
1
+ import { Log, LogLevel } from './Log';
2
+ import { AbstractLoggerAdapter } from './AbstractLoggerAdapter';
3
+ import { DefaultLoggerAdapter } from './DefaultLoggerAdapter';
4
+ export { Log, LogLevel, AbstractLoggerAdapter, DefaultLoggerAdapter };
package/lib/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LogLevel = exports.AbstractLoggerAdapter = exports.Log = void 0;
3
+ exports.DefaultLoggerAdapter = exports.AbstractLoggerAdapter = exports.LogLevel = exports.Log = void 0;
4
4
  const Log_1 = require("./Log");
5
5
  Object.defineProperty(exports, "Log", { enumerable: true, get: function () { return Log_1.Log; } });
6
+ Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return Log_1.LogLevel; } });
6
7
  const AbstractLoggerAdapter_1 = require("./AbstractLoggerAdapter");
7
- Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return AbstractLoggerAdapter_1.LogLevel; } });
8
8
  Object.defineProperty(exports, "AbstractLoggerAdapter", { enumerable: true, get: function () { return AbstractLoggerAdapter_1.AbstractLoggerAdapter; } });
9
+ const DefaultLoggerAdapter_1 = require("./DefaultLoggerAdapter");
10
+ Object.defineProperty(exports, "DefaultLoggerAdapter", { enumerable: true, get: function () { return DefaultLoggerAdapter_1.DefaultLoggerAdapter; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/log",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Logger for business apps",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",