@decaf-ts/logging 0.2.3 → 0.3.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/LICENSE.md +0 -0
- package/README.md +363 -2
- package/dist/logging.cjs +304 -89
- package/dist/logging.esm.cjs +304 -89
- package/lib/constants.cjs +28 -15
- package/lib/constants.d.ts +26 -14
- package/lib/decorators.cjs +65 -1
- package/lib/decorators.d.ts +64 -0
- package/lib/esm/constants.d.ts +26 -14
- package/lib/esm/constants.js +28 -15
- package/lib/esm/decorators.d.ts +64 -0
- package/lib/esm/decorators.js +65 -1
- package/lib/esm/index.d.ts +6 -12
- package/lib/esm/index.js +7 -13
- package/lib/esm/logging.d.ts +190 -63
- package/lib/esm/logging.js +207 -63
- package/lib/esm/types.d.ts +57 -9
- package/lib/esm/types.js +1 -1
- package/lib/esm/winston/index.d.ts +0 -0
- package/lib/esm/winston/index.js +0 -0
- package/lib/esm/winston/winston.d.ts +39 -0
- package/lib/esm/winston/winston.js +40 -1
- package/lib/index.cjs +7 -13
- package/lib/index.d.ts +6 -12
- package/lib/logging.cjs +207 -63
- package/lib/logging.d.ts +190 -63
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +57 -9
- package/lib/winston/index.cjs +0 -0
- package/lib/winston/index.d.ts +0 -0
- package/lib/winston/winston.cjs +40 -1
- package/lib/winston/winston.d.ts +39 -0
- package/package.json +1 -1
package/lib/constants.cjs
CHANGED
|
@@ -5,7 +5,7 @@ exports.DefaultLoggingConfig = exports.DefaultTheme = exports.LoggingMode = expo
|
|
|
5
5
|
* @description Enum for log levels.
|
|
6
6
|
* @summary Defines different levels of logging for the application.
|
|
7
7
|
* @enum {string}
|
|
8
|
-
* @memberOf
|
|
8
|
+
* @memberOf module:Logging
|
|
9
9
|
*/
|
|
10
10
|
var LogLevel;
|
|
11
11
|
(function (LogLevel) {
|
|
@@ -23,13 +23,13 @@ var LogLevel;
|
|
|
23
23
|
/**
|
|
24
24
|
* @description Numeric values associated with log levels.
|
|
25
25
|
* @summary Provides a numeric representation of log levels for comparison and filtering.
|
|
26
|
-
* @const
|
|
27
|
-
* @property {number} error - Numeric value for error level (
|
|
28
|
-
* @property {number} info - Numeric value for info level (
|
|
29
|
-
* @property {number} verbose - Numeric value for verbose level (
|
|
30
|
-
* @property {number} debug - Numeric value for debug level (
|
|
31
|
-
* @property {number} silly - Numeric value for silly level (
|
|
32
|
-
* @memberOf
|
|
26
|
+
* @const NumericLogLevels
|
|
27
|
+
* @property {number} error - Numeric value for error level (2).
|
|
28
|
+
* @property {number} info - Numeric value for info level (4).
|
|
29
|
+
* @property {number} verbose - Numeric value for verbose level (6).
|
|
30
|
+
* @property {number} debug - Numeric value for debug level (7).
|
|
31
|
+
* @property {number} silly - Numeric value for silly level (9).
|
|
32
|
+
* @memberOf module:Logging
|
|
33
33
|
*/
|
|
34
34
|
exports.NumericLogLevels = {
|
|
35
35
|
error: 2,
|
|
@@ -38,9 +38,17 @@ exports.NumericLogLevels = {
|
|
|
38
38
|
debug: 7,
|
|
39
39
|
silly: 9,
|
|
40
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* @description Enum for logging output modes.
|
|
43
|
+
* @summary Defines different output formats for log messages.
|
|
44
|
+
* @enum {string}
|
|
45
|
+
* @memberOf module:Logging
|
|
46
|
+
*/
|
|
41
47
|
var LoggingMode;
|
|
42
48
|
(function (LoggingMode) {
|
|
49
|
+
/** Raw text format for human readability */
|
|
43
50
|
LoggingMode["RAW"] = "raw";
|
|
51
|
+
/** JSON format for machine parsing */
|
|
44
52
|
LoggingMode["JSON"] = "json";
|
|
45
53
|
})(LoggingMode || (exports.LoggingMode = LoggingMode = {}));
|
|
46
54
|
/**
|
|
@@ -49,23 +57,24 @@ var LoggingMode;
|
|
|
49
57
|
* @const DefaultTheme
|
|
50
58
|
* @typedef {Theme} DefaultTheme
|
|
51
59
|
* @property {Object} class - Styling for class names.
|
|
52
|
-
* @property {number} class.fg - Foreground color code for class names (
|
|
60
|
+
* @property {number} class.fg - Foreground color code for class names (34).
|
|
53
61
|
* @property {Object} id - Styling for identifiers.
|
|
54
62
|
* @property {number} id.fg - Foreground color code for identifiers (36).
|
|
55
63
|
* @property {Object} stack - Styling for stack traces (empty object).
|
|
56
64
|
* @property {Object} timestamp - Styling for timestamps (empty object).
|
|
57
65
|
* @property {Object} message - Styling for different types of messages.
|
|
58
66
|
* @property {Object} message.error - Styling for error messages.
|
|
59
|
-
* @property {number} message.error.fg - Foreground color code for error messages (
|
|
67
|
+
* @property {number} message.error.fg - Foreground color code for error messages (31).
|
|
60
68
|
* @property {Object} method - Styling for method names (empty object).
|
|
61
69
|
* @property {Object} logLevel - Styling for different log levels.
|
|
62
70
|
* @property {Object} logLevel.error - Styling for error level logs.
|
|
63
|
-
* @property {number} logLevel.error.fg - Foreground color code for error level logs (
|
|
71
|
+
* @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
|
|
72
|
+
* @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
|
|
64
73
|
* @property {Object} logLevel.info - Styling for info level logs (empty object).
|
|
65
74
|
* @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
|
|
66
75
|
* @property {Object} logLevel.debug - Styling for debug level logs.
|
|
67
|
-
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (
|
|
68
|
-
* @memberOf
|
|
76
|
+
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
|
|
77
|
+
* @memberOf module:Logging
|
|
69
78
|
*/
|
|
70
79
|
exports.DefaultTheme = {
|
|
71
80
|
class: {
|
|
@@ -101,12 +110,15 @@ exports.DefaultTheme = {
|
|
|
101
110
|
* @typedef {LoggingConfig} DefaultLoggingConfig
|
|
102
111
|
* @property {number} verbose - Verbosity level (0).
|
|
103
112
|
* @property {LogLevel} level - Default log level (LogLevel.info).
|
|
113
|
+
* @property {boolean} logLevel - Whether to display log level in output (true).
|
|
114
|
+
* @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
|
|
104
115
|
* @property {boolean} style - Whether to apply styling to log output (false).
|
|
116
|
+
* @property {string} separator - Separator between log components (" - ").
|
|
105
117
|
* @property {boolean} timestamp - Whether to include timestamps in log messages (true).
|
|
106
118
|
* @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
|
|
107
119
|
* @property {boolean} context - Whether to include context information in log messages (true).
|
|
108
120
|
* @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
|
|
109
|
-
* @memberOf
|
|
121
|
+
* @memberOf module:Logging
|
|
110
122
|
*/
|
|
111
123
|
exports.DefaultLoggingConfig = {
|
|
112
124
|
verbose: 0,
|
|
@@ -114,10 +126,11 @@ exports.DefaultLoggingConfig = {
|
|
|
114
126
|
logLevel: true,
|
|
115
127
|
mode: LoggingMode.RAW,
|
|
116
128
|
style: false,
|
|
129
|
+
contextSeparator: ".",
|
|
117
130
|
separator: " - ",
|
|
118
131
|
timestamp: true,
|
|
119
132
|
timestampFormat: "HH:mm:ss.SSS",
|
|
120
133
|
context: true,
|
|
121
134
|
theme: exports.DefaultTheme,
|
|
122
135
|
};
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7R0FLRztBQUNILElBQVksUUFXWDtBQVhELFdBQVksUUFBUTtJQUNsQixzREFBc0Q7SUFDdEQsMkJBQWUsQ0FBQTtJQUNmLGtFQUFrRTtJQUNsRSx5QkFBYSxDQUFBO0lBQ2IsdUNBQXVDO0lBQ3ZDLCtCQUFtQixDQUFBO0lBQ25CLGtDQUFrQztJQUNsQywyQkFBZSxDQUFBO0lBQ2YsNENBQTRDO0lBQzVDLDJCQUFlLENBQUE7QUFDakIsQ0FBQyxFQVhXLFFBQVEsd0JBQVIsUUFBUSxRQVduQjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEtBQUssRUFBRSxDQUFDO0lBQ1IsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsNENBQTRDO0lBQzVDLDBCQUFXLENBQUE7SUFDWCxzQ0FBc0M7SUFDdEMsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxXQUFXLDJCQUFYLFdBQVcsUUFLdEI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ1UsUUFBQSxZQUFZLEdBQVU7SUFDakMsS0FBSyxFQUFFO1FBQ0wsRUFBRSxFQUFFLEVBQUU7S0FDUDtJQUNELEVBQUUsRUFBRTtRQUNGLEVBQUUsRUFBRSxFQUFFO0tBQ1A7SUFDRCxLQUFLLEVBQUUsRUFBRTtJQUNULFNBQVMsRUFBRSxFQUFFO0lBQ2IsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEVBQUU7U0FDUDtLQUNGO0lBQ0QsTUFBTSxFQUFFLEVBQUU7SUFDVixRQUFRLEVBQUU7UUFDUixLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsRUFBRTtZQUNOLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUNoQjtRQUNELElBQUksRUFBRSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsRUFBRTtTQUNQO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDVSxRQUFBLG9CQUFvQixHQUFrQjtJQUNqRCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSTtJQUNwQixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRztJQUNyQixLQUFLLEVBQUUsS0FBSztJQUNaLGdCQUFnQixFQUFFLEdBQUc7SUFDckIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixlQUFlLEVBQUUsY0FBYztJQUMvQixPQUFPLEVBQUUsSUFBSTtJQUNiLEtBQUssRUFBRSxvQkFBWTtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZ0NvbmZpZywgVGhlbWUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbnVtIGZvciBsb2cgbGV2ZWxzLlxuICogQHN1bW1hcnkgRGVmaW5lcyBkaWZmZXJlbnQgbGV2ZWxzIG9mIGxvZ2dpbmcgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICAvKiogRXJyb3IgZXZlbnRzIHRoYXQgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcy4gKi9cbiAgZXJyb3IgPSBcImVycm9yXCIsXG4gIC8qKiBSb3V0aW5lIGluZm9ybWF0aW9uLCBzdWNoIGFzIG9uZ29pbmcgc3RhdHVzIG9yIHBlcmZvcm1hbmNlLiAqL1xuICBpbmZvID0gXCJpbmZvXCIsXG4gIC8qKiBBZGRpdGlvbmFsIHJlbGV2YW50IGluZm9ybWF0aW9uLiAqL1xuICB2ZXJib3NlID0gXCJ2ZXJib3NlXCIsXG4gIC8qKiBEZWJ1ZyBvciB0cmFjZSBpbmZvcm1hdGlvbi4gKi9cbiAgZGVidWcgPSBcImRlYnVnXCIsXG4gIC8qKiB3YXkgdG9vIHZlcmJvc2Ugb3Igc2lsbHkgaW5mb3JtYXRpb24uICovXG4gIHNpbGx5ID0gXCJzaWxseVwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBOdW1lcmljIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggbG9nIGxldmVscy5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgbnVtZXJpYyByZXByZXNlbnRhdGlvbiBvZiBsb2cgbGV2ZWxzIGZvciBjb21wYXJpc29uIGFuZCBmaWx0ZXJpbmcuXG4gKiBAY29uc3QgTnVtZXJpY0xvZ0xldmVsc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGVycm9yIC0gTnVtZXJpYyB2YWx1ZSBmb3IgZXJyb3IgbGV2ZWwgKDIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGluZm8gLSBOdW1lcmljIHZhbHVlIGZvciBpbmZvIGxldmVsICg0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJib3NlIC0gTnVtZXJpYyB2YWx1ZSBmb3IgdmVyYm9zZSBsZXZlbCAoNikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZGVidWcgLSBOdW1lcmljIHZhbHVlIGZvciBkZWJ1ZyBsZXZlbCAoNykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gc2lsbHkgLSBOdW1lcmljIHZhbHVlIGZvciBzaWxseSBsZXZlbCAoOSkuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IE51bWVyaWNMb2dMZXZlbHMgPSB7XG4gIGVycm9yOiAyLFxuICBpbmZvOiA0LFxuICB2ZXJib3NlOiA2LFxuICBkZWJ1ZzogNyxcbiAgc2lsbHk6IDksXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbnVtIGZvciBsb2dnaW5nIG91dHB1dCBtb2Rlcy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgZGlmZmVyZW50IG91dHB1dCBmb3JtYXRzIGZvciBsb2cgbWVzc2FnZXMuXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCBlbnVtIExvZ2dpbmdNb2RlIHtcbiAgLyoqIFJhdyB0ZXh0IGZvcm1hdCBmb3IgaHVtYW4gcmVhZGFiaWxpdHkgKi9cbiAgUkFXID0gXCJyYXdcIixcbiAgLyoqIEpTT04gZm9ybWF0IGZvciBtYWNoaW5lIHBhcnNpbmcgKi9cbiAgSlNPTiA9IFwianNvblwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHRoZW1lIGZvciBzdHlsaW5nIGxvZyBvdXRwdXQuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IGNvbG9yIGFuZCBzdHlsZSBzZXR0aW5ncyBmb3IgdmFyaW91cyBjb21wb25lbnRzIG9mIGxvZyBtZXNzYWdlcy5cbiAqIEBjb25zdCBEZWZhdWx0VGhlbWVcbiAqIEB0eXBlZGVmIHtUaGVtZX0gRGVmYXVsdFRoZW1lXG4gKiBAcHJvcGVydHkge09iamVjdH0gY2xhc3MgLSBTdHlsaW5nIGZvciBjbGFzcyBuYW1lcy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjbGFzcy5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgY2xhc3MgbmFtZXMgKDM0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBpZCAtIFN0eWxpbmcgZm9yIGlkZW50aWZpZXJzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGlkLmZnIC0gRm9yZWdyb3VuZCBjb2xvciBjb2RlIGZvciBpZGVudGlmaWVycyAoMzYpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHN0YWNrIC0gU3R5bGluZyBmb3Igc3RhY2sgdHJhY2VzIChlbXB0eSBvYmplY3QpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHRpbWVzdGFtcCAtIFN0eWxpbmcgZm9yIHRpbWVzdGFtcHMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbWVzc2FnZSAtIFN0eWxpbmcgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBtZXNzYWdlcy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXNzYWdlLmVycm9yIC0gU3R5bGluZyBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWVzc2FnZS5lcnJvci5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgZXJyb3IgbWVzc2FnZXMgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXRob2QgLSBTdHlsaW5nIGZvciBtZXRob2QgbmFtZXMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwgLSBTdHlsaW5nIGZvciBkaWZmZXJlbnQgbG9nIGxldmVscy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC5lcnJvciAtIFN0eWxpbmcgZm9yIGVycm9yIGxldmVsIGxvZ3MuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbG9nTGV2ZWwuZXJyb3IuZmcgLSBGb3JlZ3JvdW5kIGNvbG9yIGNvZGUgZm9yIGVycm9yIGxldmVsIGxvZ3MgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGxvZ0xldmVsLmVycm9yLnN0eWxlIC0gU3R5bGUgYXR0cmlidXRlcyBmb3IgZXJyb3IgbGV2ZWwgbG9ncyAoW1wiYm9sZFwiXSkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwuaW5mbyAtIFN0eWxpbmcgZm9yIGluZm8gbGV2ZWwgbG9ncyAoZW1wdHkgb2JqZWN0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC52ZXJib3NlIC0gU3R5bGluZyBmb3IgdmVyYm9zZSBsZXZlbCBsb2dzIChlbXB0eSBvYmplY3QpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IGxvZ0xldmVsLmRlYnVnIC0gU3R5bGluZyBmb3IgZGVidWcgbGV2ZWwgbG9ncy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsb2dMZXZlbC5kZWJ1Zy5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgZGVidWcgbGV2ZWwgbG9ncyAoMzMpLlxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGhlbWU6IFRoZW1lID0ge1xuICBjbGFzczoge1xuICAgIGZnOiAzNCxcbiAgfSxcbiAgaWQ6IHtcbiAgICBmZzogMzYsXG4gIH0sXG4gIHN0YWNrOiB7fSxcbiAgdGltZXN0YW1wOiB7fSxcbiAgbWVzc2FnZToge1xuICAgIGVycm9yOiB7XG4gICAgICBmZzogMzEsXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kOiB7fSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlcnJvcjoge1xuICAgICAgZmc6IDMxLFxuICAgICAgc3R5bGU6IFtcImJvbGRcIl0sXG4gICAgfSxcbiAgICBpbmZvOiB7fSxcbiAgICB2ZXJib3NlOiB7fSxcbiAgICBkZWJ1Zzoge1xuICAgICAgZmc6IDMzLFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIGxvZ2dpbmcuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgbG9nZ2luZyBzeXN0ZW0sIGluY2x1ZGluZyB2ZXJib3NpdHksIGxvZyBsZXZlbCwgc3R5bGluZywgYW5kIHRpbWVzdGFtcCBmb3JtYXQuXG4gKiBAY29uc3QgRGVmYXVsdExvZ2dpbmdDb25maWdcbiAqIEB0eXBlZGVmIHtMb2dnaW5nQ29uZmlnfSBEZWZhdWx0TG9nZ2luZ0NvbmZpZ1xuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcmJvc2UgLSBWZXJib3NpdHkgbGV2ZWwgKDApLlxuICogQHByb3BlcnR5IHtMb2dMZXZlbH0gbGV2ZWwgLSBEZWZhdWx0IGxvZyBsZXZlbCAoTG9nTGV2ZWwuaW5mbykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvZ0xldmVsIC0gV2hldGhlciB0byBkaXNwbGF5IGxvZyBsZXZlbCBpbiBvdXRwdXQgKHRydWUpLlxuICogQHByb3BlcnR5IHtMb2dnaW5nTW9kZX0gbW9kZSAtIE91dHB1dCBmb3JtYXQgbW9kZSAoTG9nZ2luZ01vZGUuUkFXKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gc3R5bGUgLSBXaGV0aGVyIHRvIGFwcGx5IHN0eWxpbmcgdG8gbG9nIG91dHB1dCAoZmFsc2UpLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcGFyYXRvciAtIFNlcGFyYXRvciBiZXR3ZWVuIGxvZyBjb21wb25lbnRzIChcIiAtIFwiKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdGltZXN0YW1wIC0gV2hldGhlciB0byBpbmNsdWRlIHRpbWVzdGFtcHMgaW4gbG9nIG1lc3NhZ2VzICh0cnVlKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0aW1lc3RhbXBGb3JtYXQgLSBGb3JtYXQgZm9yIHRpbWVzdGFtcHMgKFwiSEg6bW06c3MuU1NTXCIpLlxuICogQHByb3BlcnR5IHtib29sZWFufSBjb250ZXh0IC0gV2hldGhlciB0byBpbmNsdWRlIGNvbnRleHQgaW5mb3JtYXRpb24gaW4gbG9nIG1lc3NhZ2VzICh0cnVlKS5cbiAqIEBwcm9wZXJ0eSB7VGhlbWV9IHRoZW1lIC0gVGhlIHRoZW1lIHRvIHVzZSBmb3Igc3R5bGluZyBsb2cgbWVzc2FnZXMgKERlZmF1bHRUaGVtZSkuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMb2dnaW5nQ29uZmlnOiBMb2dnaW5nQ29uZmlnID0ge1xuICB2ZXJib3NlOiAwLFxuICBsZXZlbDogTG9nTGV2ZWwuaW5mbyxcbiAgbG9nTGV2ZWw6IHRydWUsXG4gIG1vZGU6IExvZ2dpbmdNb2RlLlJBVyxcbiAgc3R5bGU6IGZhbHNlLFxuICBjb250ZXh0U2VwYXJhdG9yOiBcIi5cIixcbiAgc2VwYXJhdG9yOiBcIiAtIFwiLFxuICB0aW1lc3RhbXA6IHRydWUsXG4gIHRpbWVzdGFtcEZvcm1hdDogXCJISDptbTpzcy5TU1NcIixcbiAgY29udGV4dDogdHJ1ZSxcbiAgdGhlbWU6IERlZmF1bHRUaGVtZSxcbn07XG4iXX0=
|
package/lib/constants.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { LoggingConfig, Theme } from "./types";
|
|
|
3
3
|
* @description Enum for log levels.
|
|
4
4
|
* @summary Defines different levels of logging for the application.
|
|
5
5
|
* @enum {string}
|
|
6
|
-
* @memberOf
|
|
6
|
+
* @memberOf module:Logging
|
|
7
7
|
*/
|
|
8
8
|
export declare enum LogLevel {
|
|
9
9
|
/** Error events that are likely to cause problems. */
|
|
@@ -20,13 +20,13 @@ export declare enum LogLevel {
|
|
|
20
20
|
/**
|
|
21
21
|
* @description Numeric values associated with log levels.
|
|
22
22
|
* @summary Provides a numeric representation of log levels for comparison and filtering.
|
|
23
|
-
* @const
|
|
24
|
-
* @property {number} error - Numeric value for error level (
|
|
25
|
-
* @property {number} info - Numeric value for info level (
|
|
26
|
-
* @property {number} verbose - Numeric value for verbose level (
|
|
27
|
-
* @property {number} debug - Numeric value for debug level (
|
|
28
|
-
* @property {number} silly - Numeric value for silly level (
|
|
29
|
-
* @memberOf
|
|
23
|
+
* @const NumericLogLevels
|
|
24
|
+
* @property {number} error - Numeric value for error level (2).
|
|
25
|
+
* @property {number} info - Numeric value for info level (4).
|
|
26
|
+
* @property {number} verbose - Numeric value for verbose level (6).
|
|
27
|
+
* @property {number} debug - Numeric value for debug level (7).
|
|
28
|
+
* @property {number} silly - Numeric value for silly level (9).
|
|
29
|
+
* @memberOf module:Logging
|
|
30
30
|
*/
|
|
31
31
|
export declare const NumericLogLevels: {
|
|
32
32
|
error: number;
|
|
@@ -35,8 +35,16 @@ export declare const NumericLogLevels: {
|
|
|
35
35
|
debug: number;
|
|
36
36
|
silly: number;
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @description Enum for logging output modes.
|
|
40
|
+
* @summary Defines different output formats for log messages.
|
|
41
|
+
* @enum {string}
|
|
42
|
+
* @memberOf module:Logging
|
|
43
|
+
*/
|
|
38
44
|
export declare enum LoggingMode {
|
|
45
|
+
/** Raw text format for human readability */
|
|
39
46
|
RAW = "raw",
|
|
47
|
+
/** JSON format for machine parsing */
|
|
40
48
|
JSON = "json"
|
|
41
49
|
}
|
|
42
50
|
/**
|
|
@@ -45,23 +53,24 @@ export declare enum LoggingMode {
|
|
|
45
53
|
* @const DefaultTheme
|
|
46
54
|
* @typedef {Theme} DefaultTheme
|
|
47
55
|
* @property {Object} class - Styling for class names.
|
|
48
|
-
* @property {number} class.fg - Foreground color code for class names (
|
|
56
|
+
* @property {number} class.fg - Foreground color code for class names (34).
|
|
49
57
|
* @property {Object} id - Styling for identifiers.
|
|
50
58
|
* @property {number} id.fg - Foreground color code for identifiers (36).
|
|
51
59
|
* @property {Object} stack - Styling for stack traces (empty object).
|
|
52
60
|
* @property {Object} timestamp - Styling for timestamps (empty object).
|
|
53
61
|
* @property {Object} message - Styling for different types of messages.
|
|
54
62
|
* @property {Object} message.error - Styling for error messages.
|
|
55
|
-
* @property {number} message.error.fg - Foreground color code for error messages (
|
|
63
|
+
* @property {number} message.error.fg - Foreground color code for error messages (31).
|
|
56
64
|
* @property {Object} method - Styling for method names (empty object).
|
|
57
65
|
* @property {Object} logLevel - Styling for different log levels.
|
|
58
66
|
* @property {Object} logLevel.error - Styling for error level logs.
|
|
59
|
-
* @property {number} logLevel.error.fg - Foreground color code for error level logs (
|
|
67
|
+
* @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
|
|
68
|
+
* @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
|
|
60
69
|
* @property {Object} logLevel.info - Styling for info level logs (empty object).
|
|
61
70
|
* @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
|
|
62
71
|
* @property {Object} logLevel.debug - Styling for debug level logs.
|
|
63
|
-
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (
|
|
64
|
-
* @memberOf
|
|
72
|
+
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
|
|
73
|
+
* @memberOf module:Logging
|
|
65
74
|
*/
|
|
66
75
|
export declare const DefaultTheme: Theme;
|
|
67
76
|
/**
|
|
@@ -71,11 +80,14 @@ export declare const DefaultTheme: Theme;
|
|
|
71
80
|
* @typedef {LoggingConfig} DefaultLoggingConfig
|
|
72
81
|
* @property {number} verbose - Verbosity level (0).
|
|
73
82
|
* @property {LogLevel} level - Default log level (LogLevel.info).
|
|
83
|
+
* @property {boolean} logLevel - Whether to display log level in output (true).
|
|
84
|
+
* @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
|
|
74
85
|
* @property {boolean} style - Whether to apply styling to log output (false).
|
|
86
|
+
* @property {string} separator - Separator between log components (" - ").
|
|
75
87
|
* @property {boolean} timestamp - Whether to include timestamps in log messages (true).
|
|
76
88
|
* @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
|
|
77
89
|
* @property {boolean} context - Whether to include context information in log messages (true).
|
|
78
90
|
* @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
|
|
79
|
-
* @memberOf
|
|
91
|
+
* @memberOf module:Logging
|
|
80
92
|
*/
|
|
81
93
|
export declare const DefaultLoggingConfig: LoggingConfig;
|
package/lib/decorators.cjs
CHANGED
|
@@ -7,6 +7,37 @@ exports.silly = silly;
|
|
|
7
7
|
exports.verbose = verbose;
|
|
8
8
|
const constants_1 = require("./constants.cjs");
|
|
9
9
|
const logging_1 = require("./logging.cjs");
|
|
10
|
+
/**
|
|
11
|
+
* @description Method decorator for logging function calls
|
|
12
|
+
* @summary Creates a decorator that logs method calls with specified level, benchmarking, and verbosity
|
|
13
|
+
* @param {LogLevel} level - The log level to use (default: LogLevel.info)
|
|
14
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
15
|
+
* @param {number} [verbosity=0] - The verbosity level for the log messages (default: 0)
|
|
16
|
+
* @return {Function} A method decorator that wraps the original method with logging
|
|
17
|
+
* @function log
|
|
18
|
+
* @category Decorators
|
|
19
|
+
* @mermaid
|
|
20
|
+
* sequenceDiagram
|
|
21
|
+
* participant Client
|
|
22
|
+
* participant Decorator as log decorator
|
|
23
|
+
* participant Method as Original Method
|
|
24
|
+
* participant Logger as Logging instance
|
|
25
|
+
*
|
|
26
|
+
* Client->>Decorator: call decorated method
|
|
27
|
+
* Decorator->>Logger: log method call
|
|
28
|
+
* Decorator->>Method: call original method
|
|
29
|
+
* alt result is Promise
|
|
30
|
+
* Method-->>Decorator: return Promise
|
|
31
|
+
* Decorator->>Decorator: attach then handler
|
|
32
|
+
* Note over Decorator: Promise resolves
|
|
33
|
+
* Decorator->>Logger: log benchmark (if enabled)
|
|
34
|
+
* Decorator-->>Client: return result
|
|
35
|
+
* else result is not Promise
|
|
36
|
+
* Method-->>Decorator: return result
|
|
37
|
+
* Decorator->>Logger: log benchmark (if enabled)
|
|
38
|
+
* Decorator-->>Client: return result
|
|
39
|
+
* end
|
|
40
|
+
*/
|
|
10
41
|
function log(level = constants_1.LogLevel.info, benchmark = false, verbosity = 0) {
|
|
11
42
|
return function (target, propertyKey, descriptor) {
|
|
12
43
|
const log = logging_1.Logging.for(target).for(target[propertyKey]);
|
|
@@ -36,16 +67,49 @@ function log(level = constants_1.LogLevel.info, benchmark = false, verbosity = 0
|
|
|
36
67
|
};
|
|
37
68
|
};
|
|
38
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* @description Method decorator for logging function calls with debug level
|
|
72
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.debug
|
|
73
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
74
|
+
* @return {Function} A method decorator that wraps the original method with debug logging
|
|
75
|
+
* @function debug
|
|
76
|
+
* @category Decorators
|
|
77
|
+
*/
|
|
39
78
|
function debug(benchmark = false) {
|
|
40
79
|
return log(constants_1.LogLevel.debug, benchmark);
|
|
41
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* @description Method decorator for logging function calls with info level
|
|
83
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.info
|
|
84
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
85
|
+
* @return {Function} A method decorator that wraps the original method with info logging
|
|
86
|
+
* @function info
|
|
87
|
+
* @category Decorators
|
|
88
|
+
*/
|
|
42
89
|
function info(benchmark = false) {
|
|
43
90
|
return log(constants_1.LogLevel.info, benchmark);
|
|
44
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* @description Method decorator for logging function calls with silly level
|
|
94
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.silly
|
|
95
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
96
|
+
* @return {Function} A method decorator that wraps the original method with silly logging
|
|
97
|
+
* @function silly
|
|
98
|
+
* @category Decorators
|
|
99
|
+
*/
|
|
45
100
|
function silly(benchmark = false) {
|
|
46
101
|
return log(constants_1.LogLevel.silly, benchmark);
|
|
47
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* @description Method decorator for logging function calls with verbose level
|
|
105
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.verbose with configurable verbosity
|
|
106
|
+
* @param {number} verbosity - The verbosity level for the log messages (default: 0)
|
|
107
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
108
|
+
* @return {Function} A method decorator that wraps the original method with verbose logging
|
|
109
|
+
* @function verbose
|
|
110
|
+
* @category Decorators
|
|
111
|
+
*/
|
|
48
112
|
function verbose(verbosity = 0, benchmark = false) {
|
|
49
113
|
return log(constants_1.LogLevel.verbose, benchmark, verbosity);
|
|
50
114
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0NBLGtCQW1DQztBQVVELHNCQUVDO0FBVUQsb0JBRUM7QUFVRCxzQkFFQztBQVdELDBCQUVDO0FBdEhELCtDQUF1QztBQUN2QywyQ0FBb0M7QUFFcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILFNBQWdCLEdBQUcsQ0FDakIsUUFBa0Isb0JBQVEsQ0FBQyxJQUFJLEVBQy9CLFlBQXFCLEtBQUssRUFDMUIsU0FBUyxHQUFHLENBQUM7SUFFYixPQUFPLFVBQ0wsTUFBVyxFQUNYLFdBQW1CLEVBQ25CLFVBQThCO1FBRTlCLE1BQU0sR0FBRyxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztZQUN6QyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxHQUFXLENBQUM7WUFDaEIsTUFBTSxNQUFNLEdBQVEsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN2QixJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2pCLElBQUksU0FBUzs0QkFBRSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDcEUsQ0FBQztvQkFDRCxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksU0FBUztvQkFBRSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixLQUFLLENBQUMsWUFBcUIsS0FBSztJQUM5QyxPQUFPLEdBQUcsQ0FBQyxvQkFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLElBQUksQ0FBQyxZQUFxQixLQUFLO0lBQzdDLE9BQU8sR0FBRyxDQUFDLG9CQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLFlBQXFCLEtBQUs7SUFDOUMsT0FBTyxHQUFHLENBQUMsb0JBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsWUFBcUIsS0FBSztJQUMvRCxPQUFPLEdBQUcsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRob2QgZGVjb3JhdG9yIGZvciBsb2dnaW5nIGZ1bmN0aW9uIGNhbGxzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbG9ncyBtZXRob2QgY2FsbHMgd2l0aCBzcGVjaWZpZWQgbGV2ZWwsIGJlbmNobWFya2luZywgYW5kIHZlcmJvc2l0eVxuICogQHBhcmFtIHtMb2dMZXZlbH0gbGV2ZWwgLSBUaGUgbG9nIGxldmVsIHRvIHVzZSAoZGVmYXVsdDogTG9nTGV2ZWwuaW5mbylcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcGFyYW0ge251bWJlcn0gW3ZlcmJvc2l0eT0wXSAtIFRoZSB2ZXJib3NpdHkgbGV2ZWwgZm9yIHRoZSBsb2cgbWVzc2FnZXMgKGRlZmF1bHQ6IDApXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIGxvZ2dpbmdcbiAqIEBmdW5jdGlvbiBsb2dcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBEZWNvcmF0b3IgYXMgbG9nIGRlY29yYXRvclxuICogICBwYXJ0aWNpcGFudCBNZXRob2QgYXMgT3JpZ2luYWwgTWV0aG9kXG4gKiAgIHBhcnRpY2lwYW50IExvZ2dlciBhcyBMb2dnaW5nIGluc3RhbmNlXG4gKlxuICogICBDbGllbnQtPj5EZWNvcmF0b3I6IGNhbGwgZGVjb3JhdGVkIG1ldGhvZFxuICogICBEZWNvcmF0b3ItPj5Mb2dnZXI6IGxvZyBtZXRob2QgY2FsbFxuICogICBEZWNvcmF0b3ItPj5NZXRob2Q6IGNhbGwgb3JpZ2luYWwgbWV0aG9kXG4gKiAgIGFsdCByZXN1bHQgaXMgUHJvbWlzZVxuICogICAgIE1ldGhvZC0tPj5EZWNvcmF0b3I6IHJldHVybiBQcm9taXNlXG4gKiAgICAgRGVjb3JhdG9yLT4+RGVjb3JhdG9yOiBhdHRhY2ggdGhlbiBoYW5kbGVyXG4gKiAgICAgTm90ZSBvdmVyIERlY29yYXRvcjogUHJvbWlzZSByZXNvbHZlc1xuICogICAgIERlY29yYXRvci0+PkxvZ2dlcjogbG9nIGJlbmNobWFyayAoaWYgZW5hYmxlZClcbiAqICAgICBEZWNvcmF0b3ItLT4+Q2xpZW50OiByZXR1cm4gcmVzdWx0XG4gKiAgIGVsc2UgcmVzdWx0IGlzIG5vdCBQcm9taXNlXG4gKiAgICAgTWV0aG9kLS0+PkRlY29yYXRvcjogcmV0dXJuIHJlc3VsdFxuICogICAgIERlY29yYXRvci0+PkxvZ2dlcjogbG9nIGJlbmNobWFyayAoaWYgZW5hYmxlZClcbiAqICAgICBEZWNvcmF0b3ItLT4+Q2xpZW50OiByZXR1cm4gcmVzdWx0XG4gKiAgIGVuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nKFxuICBsZXZlbDogTG9nTGV2ZWwgPSBMb2dMZXZlbC5pbmZvLFxuICBiZW5jaG1hcms6IGJvb2xlYW4gPSBmYWxzZSxcbiAgdmVyYm9zaXR5ID0gMFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgKSB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGFyZ2V0KS5mb3IodGFyZ2V0W3Byb3BlcnR5S2V5XSk7XG4gICAgY29uc3QgbWV0aG9kID0gbG9nW2xldmVsXS5iaW5kKGxvZyk7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgIG1ldGhvZChgY2FsbGVkIHdpdGggJHthcmdzfWAsIHZlcmJvc2l0eSk7XG4gICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICBsZXQgZW5kOiBudW1iZXI7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgaWYgKGJlbmNobWFyaykge1xuICAgICAgICAgICAgZW5kID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIGlmIChiZW5jaG1hcmspIG1ldGhvZChgY29tcGxldGVkIGluICR7ZW5kIC0gc3RhcnR9bXNgLCB2ZXJib3NpdHkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoYmVuY2htYXJrKSB7XG4gICAgICAgIGVuZCA9IERhdGUubm93KCk7XG4gICAgICAgIGlmIChiZW5jaG1hcmspIG1ldGhvZChgY29tcGxldGVkIGluICR7ZW5kIC0gc3RhcnR9bXNgLCB2ZXJib3NpdHkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1ldGhvZCBkZWNvcmF0b3IgZm9yIGxvZ2dpbmcgZnVuY3Rpb24gY2FsbHMgd2l0aCBkZWJ1ZyBsZXZlbFxuICogQHN1bW1hcnkgQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlIGxvZyBkZWNvcmF0b3IgdGhhdCB1c2VzIExvZ0xldmVsLmRlYnVnXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtiZW5jaG1hcms9ZmFsc2VdIC0gV2hldGhlciB0byBsb2cgZXhlY3V0aW9uIHRpbWUgKGRlZmF1bHQ6IGZhbHNlKVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IHdyYXBzIHRoZSBvcmlnaW5hbCBtZXRob2Qgd2l0aCBkZWJ1ZyBsb2dnaW5nXG4gKiBAZnVuY3Rpb24gZGVidWdcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZyhiZW5jaG1hcms6IGJvb2xlYW4gPSBmYWxzZSkge1xuICByZXR1cm4gbG9nKExvZ0xldmVsLmRlYnVnLCBiZW5jaG1hcmspO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRob2QgZGVjb3JhdG9yIGZvciBsb2dnaW5nIGZ1bmN0aW9uIGNhbGxzIHdpdGggaW5mbyBsZXZlbFxuICogQHN1bW1hcnkgQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlIGxvZyBkZWNvcmF0b3IgdGhhdCB1c2VzIExvZ0xldmVsLmluZm9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIGluZm8gbG9nZ2luZ1xuICogQGZ1bmN0aW9uIGluZm9cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuaW5mbywgYmVuY2htYXJrKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0aG9kIGRlY29yYXRvciBmb3IgbG9nZ2luZyBmdW5jdGlvbiBjYWxscyB3aXRoIHNpbGx5IGxldmVsXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbG9nIGRlY29yYXRvciB0aGF0IHVzZXMgTG9nTGV2ZWwuc2lsbHlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIHNpbGx5IGxvZ2dpbmdcbiAqIEBmdW5jdGlvbiBzaWxseVxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbGx5KGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuc2lsbHksIGJlbmNobWFyayk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1ldGhvZCBkZWNvcmF0b3IgZm9yIGxvZ2dpbmcgZnVuY3Rpb24gY2FsbHMgd2l0aCB2ZXJib3NlIGxldmVsXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbG9nIGRlY29yYXRvciB0aGF0IHVzZXMgTG9nTGV2ZWwudmVyYm9zZSB3aXRoIGNvbmZpZ3VyYWJsZSB2ZXJib3NpdHlcbiAqIEBwYXJhbSB7bnVtYmVyfSB2ZXJib3NpdHkgLSBUaGUgdmVyYm9zaXR5IGxldmVsIGZvciB0aGUgbG9nIG1lc3NhZ2VzIChkZWZhdWx0OiAwKVxuICogQHBhcmFtIHtib29sZWFufSBbYmVuY2htYXJrPWZhbHNlXSAtIFdoZXRoZXIgdG8gbG9nIGV4ZWN1dGlvbiB0aW1lIChkZWZhdWx0OiBmYWxzZSlcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIG1ldGhvZCBkZWNvcmF0b3IgdGhhdCB3cmFwcyB0aGUgb3JpZ2luYWwgbWV0aG9kIHdpdGggdmVyYm9zZSBsb2dnaW5nXG4gKiBAZnVuY3Rpb24gdmVyYm9zZVxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmJvc2UodmVyYm9zaXR5ID0gMCwgYmVuY2htYXJrOiBib29sZWFuID0gZmFsc2UpIHtcbiAgcmV0dXJuIGxvZyhMb2dMZXZlbC52ZXJib3NlLCBiZW5jaG1hcmssIHZlcmJvc2l0eSk7XG59XG4iXX0=
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,6 +1,70 @@
|
|
|
1
1
|
import { LogLevel } from "./constants";
|
|
2
|
+
/**
|
|
3
|
+
* @description Method decorator for logging function calls
|
|
4
|
+
* @summary Creates a decorator that logs method calls with specified level, benchmarking, and verbosity
|
|
5
|
+
* @param {LogLevel} level - The log level to use (default: LogLevel.info)
|
|
6
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
7
|
+
* @param {number} [verbosity=0] - The verbosity level for the log messages (default: 0)
|
|
8
|
+
* @return {Function} A method decorator that wraps the original method with logging
|
|
9
|
+
* @function log
|
|
10
|
+
* @category Decorators
|
|
11
|
+
* @mermaid
|
|
12
|
+
* sequenceDiagram
|
|
13
|
+
* participant Client
|
|
14
|
+
* participant Decorator as log decorator
|
|
15
|
+
* participant Method as Original Method
|
|
16
|
+
* participant Logger as Logging instance
|
|
17
|
+
*
|
|
18
|
+
* Client->>Decorator: call decorated method
|
|
19
|
+
* Decorator->>Logger: log method call
|
|
20
|
+
* Decorator->>Method: call original method
|
|
21
|
+
* alt result is Promise
|
|
22
|
+
* Method-->>Decorator: return Promise
|
|
23
|
+
* Decorator->>Decorator: attach then handler
|
|
24
|
+
* Note over Decorator: Promise resolves
|
|
25
|
+
* Decorator->>Logger: log benchmark (if enabled)
|
|
26
|
+
* Decorator-->>Client: return result
|
|
27
|
+
* else result is not Promise
|
|
28
|
+
* Method-->>Decorator: return result
|
|
29
|
+
* Decorator->>Logger: log benchmark (if enabled)
|
|
30
|
+
* Decorator-->>Client: return result
|
|
31
|
+
* end
|
|
32
|
+
*/
|
|
2
33
|
export declare function log(level?: LogLevel, benchmark?: boolean, verbosity?: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
34
|
+
/**
|
|
35
|
+
* @description Method decorator for logging function calls with debug level
|
|
36
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.debug
|
|
37
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
38
|
+
* @return {Function} A method decorator that wraps the original method with debug logging
|
|
39
|
+
* @function debug
|
|
40
|
+
* @category Decorators
|
|
41
|
+
*/
|
|
3
42
|
export declare function debug(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
43
|
+
/**
|
|
44
|
+
* @description Method decorator for logging function calls with info level
|
|
45
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.info
|
|
46
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
47
|
+
* @return {Function} A method decorator that wraps the original method with info logging
|
|
48
|
+
* @function info
|
|
49
|
+
* @category Decorators
|
|
50
|
+
*/
|
|
4
51
|
export declare function info(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
52
|
+
/**
|
|
53
|
+
* @description Method decorator for logging function calls with silly level
|
|
54
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.silly
|
|
55
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
56
|
+
* @return {Function} A method decorator that wraps the original method with silly logging
|
|
57
|
+
* @function silly
|
|
58
|
+
* @category Decorators
|
|
59
|
+
*/
|
|
5
60
|
export declare function silly(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
61
|
+
/**
|
|
62
|
+
* @description Method decorator for logging function calls with verbose level
|
|
63
|
+
* @summary Convenience wrapper around the log decorator that uses LogLevel.verbose with configurable verbosity
|
|
64
|
+
* @param {number} verbosity - The verbosity level for the log messages (default: 0)
|
|
65
|
+
* @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
|
|
66
|
+
* @return {Function} A method decorator that wraps the original method with verbose logging
|
|
67
|
+
* @function verbose
|
|
68
|
+
* @category Decorators
|
|
69
|
+
*/
|
|
6
70
|
export declare function verbose(verbosity?: number, benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
package/lib/esm/constants.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { LoggingConfig, Theme } from "./types";
|
|
|
3
3
|
* @description Enum for log levels.
|
|
4
4
|
* @summary Defines different levels of logging for the application.
|
|
5
5
|
* @enum {string}
|
|
6
|
-
* @memberOf
|
|
6
|
+
* @memberOf module:Logging
|
|
7
7
|
*/
|
|
8
8
|
export declare enum LogLevel {
|
|
9
9
|
/** Error events that are likely to cause problems. */
|
|
@@ -20,13 +20,13 @@ export declare enum LogLevel {
|
|
|
20
20
|
/**
|
|
21
21
|
* @description Numeric values associated with log levels.
|
|
22
22
|
* @summary Provides a numeric representation of log levels for comparison and filtering.
|
|
23
|
-
* @const
|
|
24
|
-
* @property {number} error - Numeric value for error level (
|
|
25
|
-
* @property {number} info - Numeric value for info level (
|
|
26
|
-
* @property {number} verbose - Numeric value for verbose level (
|
|
27
|
-
* @property {number} debug - Numeric value for debug level (
|
|
28
|
-
* @property {number} silly - Numeric value for silly level (
|
|
29
|
-
* @memberOf
|
|
23
|
+
* @const NumericLogLevels
|
|
24
|
+
* @property {number} error - Numeric value for error level (2).
|
|
25
|
+
* @property {number} info - Numeric value for info level (4).
|
|
26
|
+
* @property {number} verbose - Numeric value for verbose level (6).
|
|
27
|
+
* @property {number} debug - Numeric value for debug level (7).
|
|
28
|
+
* @property {number} silly - Numeric value for silly level (9).
|
|
29
|
+
* @memberOf module:Logging
|
|
30
30
|
*/
|
|
31
31
|
export declare const NumericLogLevels: {
|
|
32
32
|
error: number;
|
|
@@ -35,8 +35,16 @@ export declare const NumericLogLevels: {
|
|
|
35
35
|
debug: number;
|
|
36
36
|
silly: number;
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @description Enum for logging output modes.
|
|
40
|
+
* @summary Defines different output formats for log messages.
|
|
41
|
+
* @enum {string}
|
|
42
|
+
* @memberOf module:Logging
|
|
43
|
+
*/
|
|
38
44
|
export declare enum LoggingMode {
|
|
45
|
+
/** Raw text format for human readability */
|
|
39
46
|
RAW = "raw",
|
|
47
|
+
/** JSON format for machine parsing */
|
|
40
48
|
JSON = "json"
|
|
41
49
|
}
|
|
42
50
|
/**
|
|
@@ -45,23 +53,24 @@ export declare enum LoggingMode {
|
|
|
45
53
|
* @const DefaultTheme
|
|
46
54
|
* @typedef {Theme} DefaultTheme
|
|
47
55
|
* @property {Object} class - Styling for class names.
|
|
48
|
-
* @property {number} class.fg - Foreground color code for class names (
|
|
56
|
+
* @property {number} class.fg - Foreground color code for class names (34).
|
|
49
57
|
* @property {Object} id - Styling for identifiers.
|
|
50
58
|
* @property {number} id.fg - Foreground color code for identifiers (36).
|
|
51
59
|
* @property {Object} stack - Styling for stack traces (empty object).
|
|
52
60
|
* @property {Object} timestamp - Styling for timestamps (empty object).
|
|
53
61
|
* @property {Object} message - Styling for different types of messages.
|
|
54
62
|
* @property {Object} message.error - Styling for error messages.
|
|
55
|
-
* @property {number} message.error.fg - Foreground color code for error messages (
|
|
63
|
+
* @property {number} message.error.fg - Foreground color code for error messages (31).
|
|
56
64
|
* @property {Object} method - Styling for method names (empty object).
|
|
57
65
|
* @property {Object} logLevel - Styling for different log levels.
|
|
58
66
|
* @property {Object} logLevel.error - Styling for error level logs.
|
|
59
|
-
* @property {number} logLevel.error.fg - Foreground color code for error level logs (
|
|
67
|
+
* @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
|
|
68
|
+
* @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
|
|
60
69
|
* @property {Object} logLevel.info - Styling for info level logs (empty object).
|
|
61
70
|
* @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
|
|
62
71
|
* @property {Object} logLevel.debug - Styling for debug level logs.
|
|
63
|
-
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (
|
|
64
|
-
* @memberOf
|
|
72
|
+
* @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
|
|
73
|
+
* @memberOf module:Logging
|
|
65
74
|
*/
|
|
66
75
|
export declare const DefaultTheme: Theme;
|
|
67
76
|
/**
|
|
@@ -71,11 +80,14 @@ export declare const DefaultTheme: Theme;
|
|
|
71
80
|
* @typedef {LoggingConfig} DefaultLoggingConfig
|
|
72
81
|
* @property {number} verbose - Verbosity level (0).
|
|
73
82
|
* @property {LogLevel} level - Default log level (LogLevel.info).
|
|
83
|
+
* @property {boolean} logLevel - Whether to display log level in output (true).
|
|
84
|
+
* @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
|
|
74
85
|
* @property {boolean} style - Whether to apply styling to log output (false).
|
|
86
|
+
* @property {string} separator - Separator between log components (" - ").
|
|
75
87
|
* @property {boolean} timestamp - Whether to include timestamps in log messages (true).
|
|
76
88
|
* @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
|
|
77
89
|
* @property {boolean} context - Whether to include context information in log messages (true).
|
|
78
90
|
* @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
|
|
79
|
-
* @memberOf
|
|
91
|
+
* @memberOf module:Logging
|
|
80
92
|
*/
|
|
81
93
|
export declare const DefaultLoggingConfig: LoggingConfig;
|