jet-logger 2.0.0 → 2.0.1

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.
@@ -0,0 +1,30 @@
1
+ export declare enum LoggerModes {
2
+ Console = "CONSOLE",
3
+ File = "FILE",
4
+ Custom = "CUSTOM",
5
+ Off = "OFF"
6
+ }
7
+ export declare enum Formats {
8
+ Line = "LINE",
9
+ Json = "JSON"
10
+ }
11
+ export declare type TCustomLogFn = (timestamp: Date, prefix: string, content: unknown) => void;
12
+ export declare class JetLogger {
13
+ private mode;
14
+ private filePath;
15
+ private timestamp;
16
+ private format;
17
+ private customLogFn;
18
+ constructor(mode?: LoggerModes, filepath?: string, filepathDatetimeParam?: boolean, timestamp?: boolean, format?: Formats, customLogFn?: TCustomLogFn);
19
+ private addDatetimeToFileName;
20
+ info(content: unknown, printFull?: boolean): void;
21
+ imp(content: unknown, printFull?: boolean): void;
22
+ warn(content: unknown, printFull?: boolean): void;
23
+ err(content: unknown, printFull?: boolean): void;
24
+ private printLog;
25
+ private setupLineFormat;
26
+ private setupJsonFormat;
27
+ private writeToFile;
28
+ }
29
+ declare const _default: JetLogger;
30
+ export default _default;
@@ -0,0 +1,178 @@
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.JetLogger = exports.Formats = exports.LoggerModes = void 0;
7
+ var util_1 = __importDefault(require("util"));
8
+ var colors_1 = __importDefault(require("colors"));
9
+ var fs_1 = __importDefault(require("fs"));
10
+ var LoggerModes;
11
+ (function (LoggerModes) {
12
+ LoggerModes["Console"] = "CONSOLE";
13
+ LoggerModes["File"] = "FILE";
14
+ LoggerModes["Custom"] = "CUSTOM";
15
+ LoggerModes["Off"] = "OFF";
16
+ })(LoggerModes = exports.LoggerModes || (exports.LoggerModes = {}));
17
+ var Formats;
18
+ (function (Formats) {
19
+ Formats["Line"] = "LINE";
20
+ Formats["Json"] = "JSON";
21
+ })(Formats = exports.Formats || (exports.Formats = {}));
22
+ var Levels = {
23
+ Info: {
24
+ Color: 'green',
25
+ Prefix: 'INFO',
26
+ },
27
+ Important: {
28
+ Color: 'magenta',
29
+ Prefix: 'IMPORTANT',
30
+ },
31
+ Warning: {
32
+ Color: 'yellow',
33
+ Prefix: 'WARNING',
34
+ },
35
+ Error: {
36
+ Color: 'red',
37
+ Prefix: 'ERROR',
38
+ }
39
+ };
40
+ var Errors = {
41
+ CustomLogFn: 'Custom logger mode set to true, but no custom logger was ' +
42
+ 'provided.',
43
+ Mode: 'The correct logger mode was not specified: Must be "CUSTOM", ' +
44
+ '"FILE", "OFF", or "CONSOLE".'
45
+ };
46
+ var JetLogger = (function () {
47
+ function JetLogger(mode, filepath, filepathDatetimeParam, timestamp, format, customLogFn) {
48
+ this.mode = LoggerModes.Console;
49
+ this.filePath = 'jet-logger.log';
50
+ this.timestamp = true;
51
+ this.format = Formats.Line;
52
+ this.customLogFn = function () { return ({}); };
53
+ if (mode !== undefined) {
54
+ this.mode = mode;
55
+ }
56
+ else if (!!process.env.JET_LOGGER_MODE) {
57
+ this.mode = process.env.JET_LOGGER_MODE.toUpperCase();
58
+ }
59
+ if (filepath !== undefined) {
60
+ this.filePath = filepath;
61
+ }
62
+ else if (!!process.env.JET_LOGGER_FILEPATH) {
63
+ this.filePath = process.env.JET_LOGGER_FILEPATH;
64
+ }
65
+ var filePathDatetime = true;
66
+ if (filepathDatetimeParam !== undefined) {
67
+ filePathDatetime = filepathDatetimeParam;
68
+ }
69
+ else if (!!process.env.JET_LOGGER_FILEPATH_DATETIME) {
70
+ var envVar = process.env.JET_LOGGER_FILEPATH_DATETIME;
71
+ filePathDatetime = envVar.toUpperCase() === 'TRUE';
72
+ }
73
+ if (timestamp !== undefined) {
74
+ this.timestamp = timestamp;
75
+ }
76
+ else if (!!process.env.JET_LOGGER_TIMESTAMP) {
77
+ var envVar = process.env.JET_LOGGER_TIMESTAMP;
78
+ this.timestamp = (envVar.toUpperCase() === 'TRUE');
79
+ }
80
+ if (format !== undefined) {
81
+ this.format = format;
82
+ }
83
+ else if (!!process.env.JET_LOGGER_FORMAT) {
84
+ this.format = process.env.JET_LOGGER_FORMAT.toUpperCase();
85
+ }
86
+ if (filePathDatetime) {
87
+ this.filePath = this.addDatetimeToFileName(this.filePath);
88
+ }
89
+ if (customLogFn !== undefined) {
90
+ this.customLogFn = customLogFn;
91
+ }
92
+ }
93
+ JetLogger.prototype.addDatetimeToFileName = function (filePath) {
94
+ var dateStr = new Date().toISOString()
95
+ .split('-').join('')
96
+ .split(':').join('')
97
+ .slice(0, 15);
98
+ var filePathArr = filePath.split('/'), lastIdx = filePathArr.length - 1, fileName = filePathArr[lastIdx], fileNameNew = (dateStr + '_' + fileName);
99
+ filePathArr[lastIdx] = fileNameNew;
100
+ return filePathArr.join('/');
101
+ };
102
+ JetLogger.prototype.info = function (content, printFull) {
103
+ this.printLog(content, !!printFull, Levels.Info);
104
+ };
105
+ JetLogger.prototype.imp = function (content, printFull) {
106
+ this.printLog(content, !!printFull, Levels.Important);
107
+ };
108
+ JetLogger.prototype.warn = function (content, printFull) {
109
+ this.printLog(content, !!printFull, Levels.Warning);
110
+ };
111
+ JetLogger.prototype.err = function (content, printFull) {
112
+ this.printLog(content, !!printFull, Levels.Error);
113
+ };
114
+ JetLogger.prototype.printLog = function (contentParam, printFull, level) {
115
+ if (this.mode === LoggerModes.Off) {
116
+ return;
117
+ }
118
+ var content;
119
+ if (printFull) {
120
+ content = util_1.default.inspect(contentParam);
121
+ }
122
+ else {
123
+ content = String(contentParam);
124
+ }
125
+ if (this.mode === LoggerModes.Custom) {
126
+ if (!!this.customLogFn) {
127
+ return this.customLogFn(new Date(), level.Prefix, content);
128
+ }
129
+ else {
130
+ throw Error(Errors.CustomLogFn);
131
+ }
132
+ }
133
+ if (this.format === Formats.Line) {
134
+ content = this.setupLineFormat(content, level);
135
+ }
136
+ else if (this.format === Formats.Json) {
137
+ content = this.setupJsonFormat(content, level);
138
+ }
139
+ if (this.mode === LoggerModes.Console) {
140
+ var colorFn = colors_1.default[level.Color];
141
+ console.log(colorFn(content));
142
+ }
143
+ else if (this.mode === LoggerModes.File) {
144
+ this.writeToFile(content + '\n');
145
+ }
146
+ else {
147
+ throw Error(Errors.Mode);
148
+ }
149
+ };
150
+ JetLogger.prototype.setupLineFormat = function (content, level) {
151
+ content = (level.Prefix + ': ' + content);
152
+ if (this.timestamp) {
153
+ var time = '[' + new Date().toISOString() + '] ';
154
+ return (time + content);
155
+ }
156
+ return content;
157
+ };
158
+ JetLogger.prototype.setupJsonFormat = function (content, level) {
159
+ var json = {
160
+ level: level.Prefix,
161
+ message: content,
162
+ };
163
+ if (this.timestamp) {
164
+ json.timestamp = new Date().toISOString();
165
+ }
166
+ return JSON.stringify(json);
167
+ };
168
+ JetLogger.prototype.writeToFile = function (content) {
169
+ fs_1.default.appendFile(this.filePath, content, function (err) {
170
+ if (!!err) {
171
+ console.error(err);
172
+ }
173
+ });
174
+ };
175
+ return JetLogger;
176
+ }());
177
+ exports.JetLogger = JetLogger;
178
+ exports.default = new JetLogger();
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { LoggerModes, Formats, TCustomLogFn, JetLogger, default as default, } from './JetLogger';
package/lib/index.js ADDED
@@ -0,0 +1,11 @@
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.default = exports.JetLogger = exports.Formats = exports.LoggerModes = void 0;
7
+ var JetLogger_1 = require("./JetLogger");
8
+ Object.defineProperty(exports, "LoggerModes", { enumerable: true, get: function () { return JetLogger_1.LoggerModes; } });
9
+ Object.defineProperty(exports, "Formats", { enumerable: true, get: function () { return JetLogger_1.Formats; } });
10
+ Object.defineProperty(exports, "JetLogger", { enumerable: true, get: function () { return JetLogger_1.JetLogger; } });
11
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(JetLogger_1).default; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jet-logger",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "A super quick, easy to setup logging tool for NodeJS/TypeScript.",
5
5
  "main": "./lib/index.js",
6
6
  "typings": "./lib/index.d.ts",
@@ -1,15 +0,0 @@
1
- [2024-09-06T17:21:40.902Z] INFO: hello jet-logger
2
- [2024-09-06T17:21:40.902Z] IMPORTANT: hello jet-logger
3
- [2024-09-06T17:21:40.903Z] WARNING: hello jet-logger
4
- [2024-09-06T17:21:40.903Z] ERROR: hello jet-logger
5
- [2024-09-06T17:21:40.904Z] ERROR: Error: Demo print full error object
6
- at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:76:13)
7
- at Module._compile (node:internal/modules/cjs/loader:1256:14)
8
- at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)
9
- at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
10
- at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)
11
- at Module.load (node:internal/modules/cjs/loader:1119:32)
12
- at Function.Module._load (node:internal/modules/cjs/loader:960:12)
13
- at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
14
- at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)
15
- at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)
@@ -1,5 +0,0 @@
1
- {"level":"INFO","message":"hello jet-logger","timestamp":"2024-09-06T17:21:40.904Z"}
2
- {"level":"IMPORTANT","message":"hello jet-logger","timestamp":"2024-09-06T17:21:40.904Z"}
3
- {"level":"WARNING","message":"hello jet-logger","timestamp":"2024-09-06T17:21:40.904Z"}
4
- {"level":"ERROR","message":"hello jet-logger","timestamp":"2024-09-06T17:21:40.905Z"}
5
- {"level":"ERROR","message":"Error: Demo print full error object\n at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:88:13)\n at Module._compile (node:internal/modules/cjs/loader:1256:14)\n at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\n at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1119:32)\n at Function.Module._load (node:internal/modules/cjs/loader:960:12)\n at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)\n at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)\n at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)","timestamp":"2024-09-06T17:21:40.906Z"}
@@ -1,5 +0,0 @@
1
- [2024-09-06T17:21:40.898Z] INFO: hello jet-logger
2
- [2024-09-06T17:21:40.899Z] IMPORTANT: hello jet-logger
3
- [2024-09-06T17:21:40.899Z] WARNING: hello jet-logger
4
- [2024-09-06T17:21:40.899Z] ERROR: hello jet-logger
5
-
@@ -1,15 +0,0 @@
1
- [2024-09-06T17:28:11.811Z] IMPORTANT: hello jet-logger
2
- [2024-09-06T17:28:11.811Z] INFO: hello jet-logger
3
- [2024-09-06T17:28:11.811Z] ERROR: hello jet-logger
4
- [2024-09-06T17:28:11.811Z] WARNING: hello jet-logger
5
- [2024-09-06T17:28:11.812Z] ERROR: Error: Demo print full error object
6
- at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:74:13)
7
- at Module._compile (node:internal/modules/cjs/loader:1256:14)
8
- at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)
9
- at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
10
- at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)
11
- at Module.load (node:internal/modules/cjs/loader:1119:32)
12
- at Function.Module._load (node:internal/modules/cjs/loader:960:12)
13
- at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
14
- at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)
15
- at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)
@@ -1,5 +0,0 @@
1
- {"level":"INFO","message":"hello jet-logger","timestamp":"2024-09-06T17:28:11.812Z"}
2
- {"level":"IMPORTANT","message":"hello jet-logger","timestamp":"2024-09-06T17:28:11.812Z"}
3
- {"level":"WARNING","message":"hello jet-logger","timestamp":"2024-09-06T17:28:11.812Z"}
4
- {"level":"ERROR","message":"hello jet-logger","timestamp":"2024-09-06T17:28:11.812Z"}
5
- {"level":"ERROR","message":"Error: Demo print full error object\n at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:86:13)\n at Module._compile (node:internal/modules/cjs/loader:1256:14)\n at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)\n at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1119:32)\n at Function.Module._load (node:internal/modules/cjs/loader:960:12)\n at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)\n at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)\n at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)","timestamp":"2024-09-06T17:28:11.813Z"}
@@ -1,5 +0,0 @@
1
- [2024-09-06T17:28:11.807Z] INFO: hello jet-logger
2
- [2024-09-06T17:28:11.808Z] IMPORTANT: hello jet-logger
3
- [2024-09-06T17:28:11.808Z] WARNING: hello jet-logger
4
- [2024-09-06T17:28:11.808Z] ERROR: hello jet-logger
5
-
@@ -1,30 +0,0 @@
1
- INFO: hello jet-logger
2
- IMPORTANT: hello jet-logger
3
- WARNING: hello jet-logger
4
- ERROR: hello jet-logger
5
- ERROR: Error: Demo print full error object
6
- at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:65:13)
7
- at Module._compile (node:internal/modules/cjs/loader:1256:14)
8
- at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)
9
- at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
10
- at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)
11
- at Module.load (node:internal/modules/cjs/loader:1119:32)
12
- at Function.Module._load (node:internal/modules/cjs/loader:960:12)
13
- at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
14
- at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)
15
- at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)
16
- INFO: hello jet-logger
17
- WARNING: hello jet-logger
18
- ERROR: hello jet-logger
19
- ERROR: Error: Demo print full error object
20
- at Object.<anonymous> (/home/sean/projects/jet-logger/test/index.ts:63:13)
21
- at Module._compile (node:internal/modules/cjs/loader:1256:14)
22
- at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:1618:23)
23
- at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
24
- at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:1621:12)
25
- at Module.load (node:internal/modules/cjs/loader:1119:32)
26
- at Function.Module._load (node:internal/modules/cjs/loader:960:12)
27
- at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
28
- at phase4 (/usr/local/lib/node_modules/ts-node/src/bin.ts:649:14)
29
- at bootstrap (/usr/local/lib/node_modules/ts-node/src/bin.ts:95:10)
30
- IMPORTANT: hello jet-logger
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": [
4
- "./node_modules",
5
- "test"
6
- ]
7
- }