@sjts/lib-log 31.0.2 → 31.0.3

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/dist/Logger.d.ts CHANGED
@@ -52,5 +52,10 @@ export declare class Logger {
52
52
  kill: (message: string, data?: any) => void;
53
53
  static kill(message: string, data?: any): void;
54
54
  static instance: Logger;
55
+ private static _openProfiles;
56
+ static startProfiling(key: string): void;
57
+ static stopProfiling(key: string): void;
58
+ static initProfiles(): void;
59
+ static indentMessage(message: string): string;
55
60
  }
56
61
  //# sourceMappingURL=Logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C,qBAAa,MAAM;IAClB,OAAc,GAAG,SAAa;IAC9B,OAAc,KAAK,SAAa;IAChC,OAAc,MAAM,SAAa;IACjC,OAAc,IAAI,SAAa;IAC/B,OAAc,OAAO,SAAa;IAClC,OAAc,IAAI,SAAa;IAC/B,OAAc,KAAK,SAAY;IAE/B,OAAc,IAAI,SAAY;IAC9B,OAAc,GAAG,SAAY;IAC7B,OAAc,MAAM,SAAY;IAChC,OAAc,SAAS,SAAY;IACnC,OAAc,aAAa,SAAY;IAEvC,OAAc,KAAK,SAAa;IAChC,OAAc,OAAO,SAAa;IAClC,OAAc,QAAQ,SAAa;IACnC,OAAc,MAAM,SAAa;IACjC,OAAc,SAAS,SAAa;IACpC,OAAc,MAAM,SAAa;IAEjC,OAAc,gBAAgB,EAAE,MAAM,CAAI;IAC1C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;IAC1B,OAAO,CAAC,KAAK,CAAkD;IAC/D,OAAO,CAAC,UAAU,CAAe;IAC1B,CAAC,EAAE,GAAG,CAAU;IAEvB,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAEjB;IACD,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,EAExB;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,EAE5B;IACD,MAAM,KAAK,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,EAEnC;IAED,MAAM,CAAC,MAAM;IAGb,MAAM,CAAC,OAAO;IAId,QAAQ;IAGR,MAAM,CAAC,QAAQ;IAIf,SAAS;IAGT,MAAM,CAAC,SAAS;IAIhB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAG5B,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAI5B,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UASzC;WACY,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAYxC,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAAgC;WAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAMxC,IAAI,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAA+B;WAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAMvC,MAAM,GAAI,KAAK,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,GAAG,UAA+B;WAC1E,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAOtD,IAAI,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAA+B;WAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAOvC,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAAgC;WAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAOxC,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAAgC;WAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAOxC,IAAI,GAAI,SAAS,MAAM,EAAE,OAAO,GAAG,UAA+B;WAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAU9C,OAAc,QAAQ,EAAE,MAAM,CAAe;CAC7C"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
package/dist/Logger.js CHANGED
@@ -77,47 +77,61 @@ export class Logger {
77
77
  }
78
78
  debug = (message, data) => Logger.debug(message, data);
79
79
  static debug(message, data) {
80
+ Logger.initProfiles();
81
+ const msg = Logger.indentMessage(message);
80
82
  if (this.instance.level.includes(DEBUG))
81
- this.instance.c.log(...(data ? [message, data] : [message]));
83
+ this.instance.c.log(...(data ? [msg, data] : [msg]));
82
84
  this.lastLogTimestamp = DateTime.now().toMillis();
83
85
  }
84
86
  info = (message, data) => Logger.info(message, data);
85
87
  static info(message, data) {
88
+ Logger.initProfiles();
89
+ const msg = Logger.indentMessage(message);
86
90
  if (this.instance.level.includes(INFO))
87
- this.instance.c.log(...(data ? [message, data] : [message]));
91
+ this.instance.c.log(...(data ? [msg, data] : [msg]));
88
92
  this.lastLogTimestamp = DateTime.now().toMillis();
89
93
  }
90
94
  system = (tag, message, data) => Logger.info(message, data);
91
95
  static system(tag, message, data) {
92
- const formattedMessage = `${Logger.magenta}${message}${Logger.reset}`;
96
+ Logger.initProfiles();
97
+ const msg = Logger.indentMessage(message);
98
+ const formattedMessage = `${Logger.magenta}${msg}${Logger.reset}`;
93
99
  if (this.instance.level.includes(SYSTEM) && this.instance.systemTags.includes(tag))
94
100
  this.instance.c.log(...(data ? [formattedMessage, data] : [formattedMessage]));
95
101
  this.lastLogTimestamp = DateTime.now().toMillis();
96
102
  }
97
103
  warn = (message, data) => Logger.warn(message, data);
98
104
  static warn(message, data) {
99
- const formattedMessage = `${Logger.yellow}WARN: ${message}${Logger.reset}`;
105
+ Logger.initProfiles();
106
+ const msg = Logger.indentMessage(message);
107
+ const formattedMessage = `${Logger.yellow}WARN: ${msg}${Logger.reset}`;
100
108
  if (this.instance.level.includes(WARN))
101
109
  this.instance.c.warn(...(data ? [formattedMessage, data] : [formattedMessage]));
102
110
  this.lastLogTimestamp = DateTime.now().toMillis();
103
111
  }
104
112
  error = (message, data) => Logger.error(message, data);
105
113
  static error(message, data) {
106
- const formattedMessage = `${Logger.red}ERROR: ${message}${Logger.reset}`;
114
+ Logger.initProfiles();
115
+ const msg = Logger.indentMessage(message);
116
+ const formattedMessage = `${Logger.red}ERROR: ${msg}${Logger.reset}`;
107
117
  if (this.instance.level.includes(ERROR))
108
118
  this.instance.c.error(...(data ? [formattedMessage, data] : [formattedMessage]));
109
119
  this.lastLogTimestamp = DateTime.now().toMillis();
110
120
  }
111
121
  throw = (message, data) => Logger.throw(message, data);
112
122
  static throw(message, data) {
113
- const formattedMessage = `${Logger.red}ERROR: ${message}${Logger.reset}`;
123
+ Logger.initProfiles();
124
+ const msg = Logger.indentMessage(message);
125
+ const formattedMessage = `${Logger.red}ERROR: ${msg}${Logger.reset}`;
114
126
  if (this.instance.level.includes(THROW))
115
127
  this.instance.c.error(...(data ? [formattedMessage, data] : [formattedMessage]));
116
128
  throw new Error(message.toString());
117
129
  }
118
130
  kill = (message, data) => Logger.kill(message, data);
119
131
  static kill(message, data) {
120
- const formattedMessage = `${Logger.red}ERROR: ${message}${Logger.reset}`;
132
+ Logger.initProfiles();
133
+ const msg = Logger.indentMessage(message);
134
+ const formattedMessage = `${Logger.red}ERROR: ${msg}${Logger.reset}`;
121
135
  if (this.instance.level.includes(KILL))
122
136
  this.instance.c.error(...(data ? [formattedMessage, data] : [formattedMessage]));
123
137
  this.lastLogTimestamp = DateTime.now().toMillis();
@@ -126,4 +140,33 @@ export class Logger {
126
140
  process.exit(0);
127
141
  }
128
142
  static instance = new Logger();
143
+ // ------------------------------------------------------------
144
+ // Performance
145
+ // ------------------------------------------------------------
146
+ static _openProfiles = {};
147
+ static startProfiling(key) {
148
+ Logger._openProfiles[key] = { start: DateTime.now().toMillis(), initiated: false };
149
+ }
150
+ static stopProfiling(key) {
151
+ const endTime = DateTime.now().toMillis();
152
+ const duration = endTime - Logger._openProfiles[key].start;
153
+ if (Logger._openProfiles[key].initiated)
154
+ Logger.outdent();
155
+ delete Logger._openProfiles[key];
156
+ Logger.info(`${Logger.blue}${Logger.italic}${key}${Logger.reset} - ${Logger.green}${duration}ms${Logger.reset}`);
157
+ }
158
+ static initProfiles() {
159
+ Object.keys(Logger._openProfiles).forEach(key => {
160
+ if (!Logger._openProfiles[key].initiated) {
161
+ Logger._openProfiles[key].initiated = true;
162
+ Logger.info(`${Logger.blue}${Logger.italic}${key}${Logger.reset}`);
163
+ Logger.indent();
164
+ }
165
+ });
166
+ }
167
+ static indentMessage(message) {
168
+ return Logger._indent > 0
169
+ ? `${Logger.dim}${Logger.blue}${'| '.repeat(Logger._indent)}${Logger.reset}${message}`
170
+ : message;
171
+ }
129
172
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.test.d.ts","sourceRoot":"","sources":["../src/Logger.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { Logger } from './Logger';
2
+ const test = () => {
3
+ Logger.startProfiling('Speed Test');
4
+ Logger.info('ABC');
5
+ Logger.startProfiling('Something');
6
+ Logger.info('DEF');
7
+ Logger.info('GHI');
8
+ Logger.stopProfiling('Something');
9
+ Logger.info('JKL');
10
+ Logger.startProfiling('Something Else');
11
+ Logger.stopProfiling('Something Else');
12
+ Logger.stopProfiling('Speed Test');
13
+ return 100;
14
+ };
15
+ test();
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './Logger.js';
2
+ export * from './Logger.test.js';
2
3
  export * from './LoggerLevel.js';
3
- export * from './Profiler.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './Logger.js';
2
+ export * from './Logger.test.js';
2
3
  export * from './LoggerLevel.js';
3
- export * from './Profiler.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sjts/lib-log",
3
3
  "description": "The Steve James Typescript Log package",
4
- "version": "31.0.2",
4
+ "version": "31.0.3",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -19,11 +19,13 @@
19
19
  "clean": "rm -rf dist",
20
20
  "release:patch": "yarn version patch && yarn npm publish",
21
21
  "release:minor": "yarn version minor && yarn npm publish",
22
- "release:major": "yarn version major && yarn npm publish"
22
+ "release:major": "yarn version major && yarn npm publish",
23
+ "test": "tsx src/Logger.test.ts"
23
24
  },
24
25
  "prettier": "@sjts/lib-devops/prettier.json",
25
26
  "devDependencies": {
26
27
  "@sjts/lib-devops": "31.0.1",
28
+ "tsx": "^4.20.6",
27
29
  "typescript": "^5.8.3"
28
30
  },
29
31
  "publishConfig": {