@quatrain/log 0.1.2
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.
- package/lib/AbstractLoggerAdapter.d.ts +35 -0
- package/lib/AbstractLoggerAdapter.js +49 -0
- package/lib/DefaultLoggerAdapter.d.ts +4 -0
- package/lib/DefaultLoggerAdapter.js +15 -0
- package/lib/Log.d.ts +21 -0
- package/lib/Log.js +49 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +8 -0
- package/package.json +38 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
TRACE = 0,
|
|
3
|
+
DEBUG = 1,
|
|
4
|
+
INFO = 2,
|
|
5
|
+
WARN = 3,
|
|
6
|
+
ERROR = 4,
|
|
7
|
+
SILENT = 5
|
|
8
|
+
}
|
|
9
|
+
export interface LoggerType {
|
|
10
|
+
log(message: string): void;
|
|
11
|
+
debug(message: string): void;
|
|
12
|
+
warn(message: string): void;
|
|
13
|
+
info(message: string): void;
|
|
14
|
+
error(message: string): void;
|
|
15
|
+
trace(message: string): void;
|
|
16
|
+
}
|
|
17
|
+
export declare class AbstractLoggerAdapter {
|
|
18
|
+
protected _me: string;
|
|
19
|
+
protected _logLevel: LogLevel;
|
|
20
|
+
protected _logger: any;
|
|
21
|
+
constructor(prefix?: string, level?: LogLevel);
|
|
22
|
+
timestamp: () => string;
|
|
23
|
+
formatLogMessage: (message: any) => string;
|
|
24
|
+
/**
|
|
25
|
+
* Log message using defined logger
|
|
26
|
+
* @param message string | object
|
|
27
|
+
* @param level string
|
|
28
|
+
*/
|
|
29
|
+
log(message: any, level?: LogLevel): void;
|
|
30
|
+
debug(message: any): void;
|
|
31
|
+
warn(message: any): void;
|
|
32
|
+
info(message: any): void;
|
|
33
|
+
error(message: any): void;
|
|
34
|
+
trace(message: any): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractLoggerAdapter = exports.LogLevel = void 0;
|
|
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 = {}));
|
|
14
|
+
class AbstractLoggerAdapter {
|
|
15
|
+
constructor(prefix = '', level = LogLevel.WARN) {
|
|
16
|
+
this._me = '';
|
|
17
|
+
this._logLevel = LogLevel.WARN;
|
|
18
|
+
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)}`;
|
|
22
|
+
this._me = prefix;
|
|
23
|
+
this._logLevel = level;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Log message using defined logger
|
|
27
|
+
* @param message string | object
|
|
28
|
+
* @param level string
|
|
29
|
+
*/
|
|
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
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.AbstractLoggerAdapter = AbstractLoggerAdapter;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DefaultLoggerAdapter = void 0;
|
|
7
|
+
const AbstractLoggerAdapter_1 = require("./AbstractLoggerAdapter");
|
|
8
|
+
const loglevel_1 = __importDefault(require("loglevel"));
|
|
9
|
+
class DefaultLoggerAdapter extends AbstractLoggerAdapter_1.AbstractLoggerAdapter {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('Log');
|
|
12
|
+
this._logger = loglevel_1.default;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.DefaultLoggerAdapter = DefaultLoggerAdapter;
|
package/lib/Log.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AbstractLoggerAdapter } from "./AbstractLoggerAdapter";
|
|
2
|
+
export type LoggerRegistry<T extends AbstractLoggerAdapter> = {
|
|
3
|
+
[x: string]: T;
|
|
4
|
+
};
|
|
5
|
+
export declare class Log {
|
|
6
|
+
static defaultLogger: string;
|
|
7
|
+
protected static _loggers: LoggerRegistry<any>;
|
|
8
|
+
static timestamp: () => string;
|
|
9
|
+
static addLogger(logger: AbstractLoggerAdapter, alias: string, setDefault?: boolean): void;
|
|
10
|
+
static getLogger<T extends AbstractLoggerAdapter>(alias?: string): T;
|
|
11
|
+
/**
|
|
12
|
+
* Log message using defined logger
|
|
13
|
+
* @param message string | object
|
|
14
|
+
*/
|
|
15
|
+
static log(message: any): void;
|
|
16
|
+
static debug(message: any): void;
|
|
17
|
+
static warn(message: any): void;
|
|
18
|
+
static info(message: any): void;
|
|
19
|
+
static error(message: any): void;
|
|
20
|
+
static trace(message: any): void;
|
|
21
|
+
}
|
package/lib/Log.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Log = void 0;
|
|
4
|
+
const DefaultLoggerAdapter_1 = require("./DefaultLoggerAdapter");
|
|
5
|
+
class Log {
|
|
6
|
+
static addLogger(logger, alias, setDefault = false) {
|
|
7
|
+
this._loggers[alias] = logger;
|
|
8
|
+
if (setDefault) {
|
|
9
|
+
this.defaultLogger = alias;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
static getLogger(alias = this.defaultLogger) {
|
|
13
|
+
if (this._loggers[alias]) {
|
|
14
|
+
return this._loggers[alias];
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error(`Unknown logger alias: '${alias}'`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Log message using defined logger
|
|
22
|
+
* @param message string | object
|
|
23
|
+
*/
|
|
24
|
+
static log(message) {
|
|
25
|
+
return Log.getLogger().log(message);
|
|
26
|
+
}
|
|
27
|
+
static debug(message) {
|
|
28
|
+
return Log.getLogger().debug(message);
|
|
29
|
+
}
|
|
30
|
+
static warn(message) {
|
|
31
|
+
return Log.getLogger().warn(message);
|
|
32
|
+
}
|
|
33
|
+
static info(message) {
|
|
34
|
+
return Log.getLogger().info(message);
|
|
35
|
+
}
|
|
36
|
+
static error(message) {
|
|
37
|
+
return Log.getLogger().error(message);
|
|
38
|
+
}
|
|
39
|
+
static trace(message) {
|
|
40
|
+
return Log.getLogger().trace(message);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.Log = Log;
|
|
44
|
+
Log.defaultLogger = '@default';
|
|
45
|
+
Log._loggers = {
|
|
46
|
+
default: new DefaultLoggerAdapter_1.DefaultLoggerAdapter()
|
|
47
|
+
};
|
|
48
|
+
// How timestamp are formatted
|
|
49
|
+
Log.timestamp = () => new Date().toISOString();
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogLevel = exports.AbstractLoggerAdapter = exports.Log = void 0;
|
|
4
|
+
const Log_1 = require("./Log");
|
|
5
|
+
Object.defineProperty(exports, "Log", { enumerable: true, get: function () { return Log_1.Log; } });
|
|
6
|
+
const AbstractLoggerAdapter_1 = require("./AbstractLoggerAdapter");
|
|
7
|
+
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return AbstractLoggerAdapter_1.LogLevel; } });
|
|
8
|
+
Object.defineProperty(exports, "AbstractLoggerAdapter", { enumerable: true, get: function () { return AbstractLoggerAdapter_1.AbstractLoggerAdapter; } });
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quatrain/log",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Logger for business apps",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"lib/",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
11
|
+
"author": "Quatrain Développement SAS <developers@quatrain.com>",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@tsconfig/recommended": "^1.0.1",
|
|
15
|
+
"@types/jest": "^27.0.3",
|
|
16
|
+
"@types/node": "^22.10.1",
|
|
17
|
+
"jest": "^27.4.7",
|
|
18
|
+
"jest-node-exports-resolver": "^1.1.6",
|
|
19
|
+
"trace-unhandled": "^2.0.1",
|
|
20
|
+
"ts-jest": "^27.1.2",
|
|
21
|
+
"ts-node": "^10.4.0",
|
|
22
|
+
"typescript": "^5.1.5"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"loglevel": "^1.9.2"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"test-ci": "jest --runInBand",
|
|
29
|
+
"build": "tsc",
|
|
30
|
+
"wbuild": "tsc --watch",
|
|
31
|
+
"bump-to": "yarn version",
|
|
32
|
+
"hash": "node ../../bin/hashFolder.js",
|
|
33
|
+
"hash:persist": "yarn hash > .hash_latest.txt",
|
|
34
|
+
"hash:compare": "yarn hash > .hash_newest.txt && cmp -s .hash_latest.txt .hash_newest.txt",
|
|
35
|
+
"publish": "yarn hash:compare || yarn publish:process",
|
|
36
|
+
"publish:process": "yarn version patch && yarn build && yarn npm publish --access public && yarn hash:persist"
|
|
37
|
+
}
|
|
38
|
+
}
|