hermodlog 1.5.2 → 1.6.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermodlog",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "Simple contextual logger to simplify log display in heavy load context and provide easy parsing",
5
5
  "main": "src/Logger.js",
6
6
  "type": "module",
package/src/Logger.js CHANGED
@@ -13,6 +13,7 @@ import trace from "./methods/trace.js";
13
13
  import warn from "./methods/warn.js";
14
14
  import fatal from "./methods/fatal.js";
15
15
  import child from "./methods/child.js";
16
+ import submethod from "./methods/submethod.js";
16
17
 
17
18
  import LOG_COLORS from "./LOG_COLORS.js";
18
19
  import object from "./methods/object.js";
@@ -54,11 +55,17 @@ class Logger {
54
55
  writable: true,
55
56
  enumerable: true
56
57
  },
58
+ submethodName: {
59
+ value: props.submethodName ?? null,
60
+ writable: true,
61
+ enumerable: true
62
+ },
57
63
  objectName: {
58
64
  value: props.objectName ?? null,
59
65
  writable: true,
60
66
  enumerable: true
61
67
  }
68
+
62
69
  });
63
70
 
64
71
  if (props.date) {
@@ -86,6 +93,7 @@ class Logger {
86
93
  const keepContext = opts?.keepContext ?? true;
87
94
  const keepMethod = opts?.keepMethod ?? true;
88
95
  const keepModule = opts?.keepModule ?? true;
96
+ const keepSubmethod = opts?.keepSubmethod ?? true;
89
97
  const keepListener = opts?.keepListener ?? true;
90
98
  const keepObject = opts?.keepObject ?? true;
91
99
 
@@ -98,6 +106,7 @@ class Logger {
98
106
  methodName: (keepMethod) ? this.methodName : opts.methodName ?? null,
99
107
  moduleName: (keepModule) ? this.moduleName : opts.moduleName ?? null,
100
108
  listenerName: (keepListener) ? this.listenerName : opts.listenerName ?? null,
109
+ submethodName: (keepSubmethod) ? this.submethodName : opts.submethodName ?? null,
101
110
  objectName: (keepObject) ? this.objectName : opts.objectName ?? null,
102
111
  })
103
112
  }
@@ -113,6 +122,7 @@ Logger.prototype.listener = listener;
113
122
  Logger.prototype.log = log;
114
123
  Logger.prototype.method = method;
115
124
  Logger.prototype.object = object;
125
+ Logger.prototype.submethod = submethod;
116
126
  Logger.prototype.module = module;
117
127
  Logger.prototype.trace = trace;
118
128
  Logger.prototype.warn = warn;
@@ -0,0 +1,8 @@
1
+ import Logger from "../Logger.js";
2
+
3
+ export default function submethod(_submethod) {
4
+ const logger = this.clone();
5
+ logger.submethodName = _submethod;
6
+ logger._log = this._log.bind(logger);
7
+ return logger;
8
+ }
package/src/utils/log.js CHANGED
@@ -31,36 +31,59 @@ export default function log(level, args, context) {
31
31
  message += `[${colors[1](type)}]`;
32
32
  }
33
33
 
34
- if (context.contextName) {
34
+
35
+ const hasContext = !!context.contextName;
36
+ const hasModule = !!context.moduleName;
37
+ const hasListener = !!context.listenerName;
38
+ const hasMethod = !!context.methodName;
39
+ const hasSubmethod = !!context.submethodName;
40
+ const hasObject = !!context.objectName;
41
+
42
+ if (hasContext) {
35
43
  message += ` context: ${colors[2](context.contextName)}`;
36
- if (context.moduleName || context.listenerName || context.methodName) {
44
+ const hasNext = hasModule || hasListener || hasMethod || hasSubmethod;
45
+ if (hasNext) {
37
46
  message += ' |';
38
47
  }
39
48
  }
40
49
 
41
- if (context.moduleName) {
50
+ if (hasModule) {
42
51
  message += ` module:${colors[3](context.moduleName)}`;
43
- if (context.listenerName || context.methodName) {
52
+ const hasNext = hasListener || hasMethod || hasSubmethod;
53
+ if (hasNext) {
44
54
  message += ' |';
45
55
  }
46
56
  }
47
57
 
48
- if (context.listenerName) {
49
- message += ` listener: ${colors[4](context.listenerName)}`;
50
- if (context.methodName) {
58
+ if (hasMethod) {
59
+ message += ` method: ${colors[5](context.methodName)}`;
60
+ const hasNext = hasSubmethod;
61
+ if (hasNext) {
51
62
  message += ' |';
52
63
  }
53
64
  }
54
-
55
- if (context.methodName) {
56
- message += ` method: ${colors[5](context.methodName)}`;
65
+
66
+ if (hasSubmethod) {
67
+ message += ` submethod: ${colors[6](context.submethodName)}`;
68
+ const hasNext = hasListener || hasMethod;
69
+ if (hasNext) {
70
+ message += ' |';
71
+ }
72
+ }
73
+
74
+ if (hasListener) {
75
+ message += ` listener: ${colors[4](context.listenerName)}`;
76
+ const hasNext = hasObject;
77
+ if (hasNext) {
78
+ message += ' |';
79
+ }
57
80
  }
58
81
 
59
- if (context.objectName) {
82
+ if (hasObject) {
60
83
  message += ` Object[${colors[6](context.objectName)}]`;
61
84
  }
62
85
 
63
- message += ' ';
86
+ message += ' - ';
64
87
 
65
88
  for (let i = 0; i < args.length; i++) {
66
89
  const arg = args[i];
package/usage.example.js CHANGED
@@ -17,5 +17,10 @@ const object = {
17
17
 
18
18
  listenerLogger.log(`${object}`);
19
19
 
20
+ // listenerLogger.submethod('processIncomingMessage').log('Received from ws client',object)
20
21
 
21
- console.log({logger});
22
+
23
+
24
+ // console.log({logger});
25
+
26
+ logger.context('APIContext').module('Websocket Server').method('setListeners').listener('onMessage').submethod('processIncomingMessage').log('Received from ws client');