@vercube/logger 0.0.3 → 0.0.4
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/ConsoleProvider-CdK1M-7f.mjs +26 -0
- package/dist/ConsoleProvider-DXElZIwj.d.mts +22 -0
- package/dist/JsonProvider-Cu-oM5SL.d.mts +23 -0
- package/dist/{Providers/JsonProvider.d.ts → JsonProvider-DuUvvoSw.mjs} +15 -6
- package/dist/LoggerProvider-DMxXOscV.mjs +12 -0
- package/dist/LoggerProvider-eYcrAQ1D.d.mts +57 -0
- package/dist/Providers/ConsoleProvider.d.mts +3 -0
- package/dist/Providers/ConsoleProvider.mjs +5 -0
- package/dist/Providers/JsonProvider.d.mts +3 -0
- package/dist/Providers/JsonProvider.mjs +4 -0
- package/dist/Providers/index.d.mts +4 -0
- package/dist/Providers/index.mjs +4 -81
- package/dist/Utils-5578ynXS.mjs +39 -0
- package/dist/index.d.mts +109 -0
- package/dist/index.mjs +44 -50
- package/package.json +4 -8
- package/dist/Common/Logger.d.ts +0 -39
- package/dist/Common/LoggerProvider.d.ts +0 -26
- package/dist/Providers/ConsoleProvider.d.ts +0 -18
- package/dist/Providers/index.cjs +0 -86
- package/dist/Providers/index.d.ts +0 -2
- package/dist/Service/BaseLogger.d.ts +0 -55
- package/dist/Types/LoggerTypes.d.ts +0 -27
- package/dist/Utils/Utils.d.ts +0 -11
- package/dist/index.cjs +0 -186
- package/dist/index.d.ts +0 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LOG_LEVEL_COLORS } from "./Utils-5578ynXS.mjs";
|
|
2
|
+
import { LoggerProvider } from "./LoggerProvider-DMxXOscV.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/Providers/ConsoleProvider.ts
|
|
5
|
+
/**
|
|
6
|
+
* ConsoleProvider class for logging messages to the console.
|
|
7
|
+
*/
|
|
8
|
+
var ConsoleProvider = class extends LoggerProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the appender with the provided options.
|
|
11
|
+
* This method should be called before using the appender to process messages.
|
|
12
|
+
*/
|
|
13
|
+
initialize() {}
|
|
14
|
+
/**
|
|
15
|
+
* Prints a log message according to the specified format and level.
|
|
16
|
+
* @param message - The log message object containing level, tag, and arguments
|
|
17
|
+
* @protected
|
|
18
|
+
*/
|
|
19
|
+
processMessage(message) {
|
|
20
|
+
const date = message.timestamp ? new Date(message.timestamp) : /* @__PURE__ */ new Date();
|
|
21
|
+
console[message.level](`%s%s${message?.tag ? "%s" : ""} %s`, LOG_LEVEL_COLORS[message.level](`[${date.toISOString().split("T")[1]?.replace("Z", "")}]`), LOG_LEVEL_COLORS[message.level](`[${message.level.toUpperCase().padEnd(5, " ")}]`), message?.tag ? LOG_LEVEL_COLORS[message.level](`[${message.tag}]`) : "", ...message.args);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ConsoleProvider };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LoggerProvider, LoggerTypes } from "./LoggerProvider-eYcrAQ1D.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/Providers/ConsoleProvider.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ConsoleProvider class for logging messages to the console.
|
|
7
|
+
*/
|
|
8
|
+
declare class ConsoleProvider extends LoggerProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the appender with the provided options.
|
|
11
|
+
* This method should be called before using the appender to process messages.
|
|
12
|
+
*/
|
|
13
|
+
initialize(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Prints a log message according to the specified format and level.
|
|
16
|
+
* @param message - The log message object containing level, tag, and arguments
|
|
17
|
+
* @protected
|
|
18
|
+
*/
|
|
19
|
+
processMessage(message: LoggerTypes.Message): void;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { ConsoleProvider };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LoggerProvider, LoggerTypes } from "./LoggerProvider-eYcrAQ1D.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/Providers/JsonProvider.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A logger implementation that formats log messages as JSON.
|
|
7
|
+
*/
|
|
8
|
+
declare class JSONProvider extends LoggerProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the appender with the provided options.
|
|
11
|
+
* This method should be called before using the appender to process messages.
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
initialize(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Prints a log message according to the specified format and level.
|
|
17
|
+
* @param message - The log message object containing level, tag, and arguments
|
|
18
|
+
* @protected
|
|
19
|
+
*/
|
|
20
|
+
processMessage(message: LoggerTypes.Message): void;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { JSONProvider };
|
|
@@ -1,19 +1,28 @@
|
|
|
1
|
-
import { LoggerProvider } from "
|
|
2
|
-
|
|
1
|
+
import { LoggerProvider } from "./LoggerProvider-DMxXOscV.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/Providers/JsonProvider.ts
|
|
3
4
|
/**
|
|
4
5
|
* A logger implementation that formats log messages as JSON.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
var JSONProvider = class extends LoggerProvider {
|
|
7
8
|
/**
|
|
8
9
|
* Initializes the appender with the provided options.
|
|
9
10
|
* This method should be called before using the appender to process messages.
|
|
10
11
|
*
|
|
11
12
|
*/
|
|
12
|
-
initialize()
|
|
13
|
+
initialize() {}
|
|
13
14
|
/**
|
|
14
15
|
* Prints a log message according to the specified format and level.
|
|
15
16
|
* @param message - The log message object containing level, tag, and arguments
|
|
16
17
|
* @protected
|
|
17
18
|
*/
|
|
18
|
-
processMessage(message
|
|
19
|
-
|
|
19
|
+
processMessage(message) {
|
|
20
|
+
console.log(JSON.stringify({
|
|
21
|
+
type: message?.type ?? "application_log",
|
|
22
|
+
...message
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { JSONProvider };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/Common/LoggerProvider.ts
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for implementing log provider.
|
|
4
|
+
* Providers are responsible for processing and outputting log messages to various destinations.
|
|
5
|
+
* Each appender can be initialized with custom options and handles message processing according to its implementation.
|
|
6
|
+
*
|
|
7
|
+
* @template T - The type of options used to initialize the appender
|
|
8
|
+
*/
|
|
9
|
+
var LoggerProvider = class {};
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { LoggerProvider };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { IOC } from "@vercube/di";
|
|
2
|
+
|
|
3
|
+
//#region src/Types/LoggerTypes.d.ts
|
|
4
|
+
declare namespace LoggerTypes {
|
|
5
|
+
type Level = 'debug' | 'info' | 'warn' | 'error';
|
|
6
|
+
type Arg = any;
|
|
7
|
+
interface Message {
|
|
8
|
+
level: Level;
|
|
9
|
+
args: Arg[];
|
|
10
|
+
tag?: string;
|
|
11
|
+
pid?: number;
|
|
12
|
+
type?: 'access_log' | 'application_log';
|
|
13
|
+
timestamp?: number;
|
|
14
|
+
}
|
|
15
|
+
type LogProviderOptions<T extends IOC.Newable<LoggerProvider>> = Parameters<InstanceType<T>['initialize']>[0] & {
|
|
16
|
+
logLevel?: Level;
|
|
17
|
+
};
|
|
18
|
+
interface LogAppender<T extends IOC.Newable<LoggerProvider>> {
|
|
19
|
+
name: string;
|
|
20
|
+
provider: T;
|
|
21
|
+
logLevel?: Level;
|
|
22
|
+
options?: LogProviderOptions<T>;
|
|
23
|
+
}
|
|
24
|
+
interface Options {
|
|
25
|
+
logLevel?: Level;
|
|
26
|
+
providers?: LogAppender<any>[];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/Common/LoggerProvider.d.ts
|
|
31
|
+
/**
|
|
32
|
+
* Abstract base class for implementing log provider.
|
|
33
|
+
* Providers are responsible for processing and outputting log messages to various destinations.
|
|
34
|
+
* Each appender can be initialized with custom options and handles message processing according to its implementation.
|
|
35
|
+
*
|
|
36
|
+
* @template T - The type of options used to initialize the appender
|
|
37
|
+
*/
|
|
38
|
+
declare abstract class LoggerProvider<T = unknown> {
|
|
39
|
+
/**
|
|
40
|
+
* Initializes the appender with the provided options.
|
|
41
|
+
* This method should be called before using the appender to process messages.
|
|
42
|
+
*
|
|
43
|
+
* @param options - Configuration options for the appender
|
|
44
|
+
* @returns void or Promise<void> if initialization is asynchronous
|
|
45
|
+
*/
|
|
46
|
+
abstract initialize(options: T): void | Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Processes a log message according to the appender's implementation.
|
|
49
|
+
* This method handles the actual logging logic specific to each appender type.
|
|
50
|
+
*
|
|
51
|
+
* @param message - The log message to process, containing level, tag, and other metadata
|
|
52
|
+
* @returns void or Promise<void> if processing is asynchronous
|
|
53
|
+
*/
|
|
54
|
+
abstract processMessage(message: LoggerTypes.Message): void | Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { LoggerProvider, LoggerTypes };
|
package/dist/Providers/index.mjs
CHANGED
|
@@ -1,83 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* Each appender can be initialized with custom options and handles message processing according to its implementation.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of options used to initialize the appender
|
|
8
|
-
*/
|
|
9
|
-
var LoggerProvider = class {};
|
|
1
|
+
import "../Utils-5578ynXS.mjs";
|
|
2
|
+
import "../LoggerProvider-DMxXOscV.mjs";
|
|
3
|
+
import { ConsoleProvider } from "../ConsoleProvider-CdK1M-7f.mjs";
|
|
4
|
+
import { JSONProvider } from "../JsonProvider-DuUvvoSw.mjs";
|
|
10
5
|
|
|
11
|
-
//#endregion
|
|
12
|
-
//#region packages/logger/src/Providers/JsonProvider.ts
|
|
13
|
-
/**
|
|
14
|
-
* A logger implementation that formats log messages as JSON.
|
|
15
|
-
*/
|
|
16
|
-
var JSONProvider = class extends LoggerProvider {
|
|
17
|
-
/**
|
|
18
|
-
* Initializes the appender with the provided options.
|
|
19
|
-
* This method should be called before using the appender to process messages.
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
initialize() {}
|
|
23
|
-
/**
|
|
24
|
-
* Prints a log message according to the specified format and level.
|
|
25
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
26
|
-
* @protected
|
|
27
|
-
*/
|
|
28
|
-
processMessage(message) {
|
|
29
|
-
console.log(JSON.stringify({
|
|
30
|
-
type: message?.type ?? "application_log",
|
|
31
|
-
...message
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
//#region packages/logger/src/Utils/Utils.ts
|
|
38
|
-
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
39
|
-
const colorIfAllowed = (colorFn) => {
|
|
40
|
-
const wrappedFn = (text) => {
|
|
41
|
-
return isColorAllowed() ? colorFn(text) : text;
|
|
42
|
-
};
|
|
43
|
-
return wrappedFn;
|
|
44
|
-
};
|
|
45
|
-
const colors = {
|
|
46
|
-
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
47
|
-
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|
|
48
|
-
yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
|
|
49
|
-
red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
|
|
50
|
-
magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
|
|
51
|
-
cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
|
|
52
|
-
};
|
|
53
|
-
const LOG_LEVEL_COLORS = {
|
|
54
|
-
debug: colors.green,
|
|
55
|
-
info: colors.bold,
|
|
56
|
-
warn: colors.yellow,
|
|
57
|
-
error: colors.red
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
//#endregion
|
|
61
|
-
//#region packages/logger/src/Providers/ConsoleProvider.ts
|
|
62
|
-
/**
|
|
63
|
-
* ConsoleProvider class for logging messages to the console.
|
|
64
|
-
*/
|
|
65
|
-
var ConsoleProvider = class extends LoggerProvider {
|
|
66
|
-
/**
|
|
67
|
-
* Initializes the appender with the provided options.
|
|
68
|
-
* This method should be called before using the appender to process messages.
|
|
69
|
-
*/
|
|
70
|
-
initialize() {}
|
|
71
|
-
/**
|
|
72
|
-
* Prints a log message according to the specified format and level.
|
|
73
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
74
|
-
* @protected
|
|
75
|
-
*/
|
|
76
|
-
processMessage(message) {
|
|
77
|
-
const date = message.timestamp ? new Date(message.timestamp) : new Date();
|
|
78
|
-
console[message.level](`%s%s${message?.tag ? "%s" : ""} %s`, LOG_LEVEL_COLORS[message.level](`[${date.toISOString().split("T")[1]?.replace("Z", "")}]`), LOG_LEVEL_COLORS[message.level](`[${message.level.toUpperCase().padEnd(5, " ")}]`), message?.tag ? LOG_LEVEL_COLORS[message.level](`[${message.tag}]`) : "", ...message.args);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
6
|
export { ConsoleProvider, JSONProvider };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/Utils/Utils.ts
|
|
2
|
+
const LOG_LEVEL_VALUES = {
|
|
3
|
+
debug: 1,
|
|
4
|
+
info: 2,
|
|
5
|
+
warn: 3,
|
|
6
|
+
error: 4
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Checks if target level is enabled.
|
|
10
|
+
* @param targetLevel target level
|
|
11
|
+
* @param logLevels array of enabled log levels
|
|
12
|
+
*/
|
|
13
|
+
function isLogLevelEnabled(targetLevel, currentLevel) {
|
|
14
|
+
return LOG_LEVEL_VALUES[targetLevel] >= LOG_LEVEL_VALUES[currentLevel];
|
|
15
|
+
}
|
|
16
|
+
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
17
|
+
const colorIfAllowed = (colorFn) => {
|
|
18
|
+
const wrappedFn = (text) => {
|
|
19
|
+
return isColorAllowed() ? colorFn(text) : text;
|
|
20
|
+
};
|
|
21
|
+
return wrappedFn;
|
|
22
|
+
};
|
|
23
|
+
const colors = {
|
|
24
|
+
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
25
|
+
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|
|
26
|
+
yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
|
|
27
|
+
red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
|
|
28
|
+
magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
|
|
29
|
+
cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
|
|
30
|
+
};
|
|
31
|
+
const LOG_LEVEL_COLORS = {
|
|
32
|
+
debug: colors.green,
|
|
33
|
+
info: colors.bold,
|
|
34
|
+
warn: colors.yellow,
|
|
35
|
+
error: colors.red
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { LOG_LEVEL_COLORS, colors, isLogLevelEnabled };
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { LoggerTypes } from "./LoggerProvider-eYcrAQ1D.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/Common/Logger.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base class for implementing logging services.
|
|
7
|
+
* Provides a standard interface for logging at different levels.
|
|
8
|
+
* Implementations can customize how logs are processed and stored.
|
|
9
|
+
*/
|
|
10
|
+
declare abstract class Logger {
|
|
11
|
+
/**
|
|
12
|
+
* Configures the logger with the provided options.
|
|
13
|
+
* This method should be called before using the logger to process logs.
|
|
14
|
+
* @param options - Configuration options for the logger
|
|
15
|
+
* @returns void or Promise<void> if configuration is asynchronous
|
|
16
|
+
*/
|
|
17
|
+
abstract configure(options: LoggerTypes.Options): void;
|
|
18
|
+
/**
|
|
19
|
+
* Logs a message at the specified log level.
|
|
20
|
+
* @param args - Additional parameters to be logged
|
|
21
|
+
* @returns A value determined by the implementing class
|
|
22
|
+
*/
|
|
23
|
+
abstract debug(...args: LoggerTypes.Arg[]): void;
|
|
24
|
+
/**
|
|
25
|
+
* Logs an informational message.
|
|
26
|
+
* @param args - Additional parameters to be logged
|
|
27
|
+
* @returns A value determined by the implementing class
|
|
28
|
+
*/
|
|
29
|
+
abstract info(...args: LoggerTypes.Arg[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Logs a warning message.
|
|
32
|
+
* @param args - Additional parameters to be logged
|
|
33
|
+
* @returns A value determined by the implementing class
|
|
34
|
+
*/
|
|
35
|
+
abstract warn(...args: LoggerTypes.Arg[]): void;
|
|
36
|
+
/**
|
|
37
|
+
* Logs an error message.
|
|
38
|
+
* @param args - Additional parameters to be logged
|
|
39
|
+
* @returns A value determined by the implementing class
|
|
40
|
+
*/
|
|
41
|
+
abstract error(...args: LoggerTypes.Arg[]): void;
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/Service/BaseLogger.d.ts
|
|
45
|
+
declare class BaseLogger implements Logger {
|
|
46
|
+
private gContainer;
|
|
47
|
+
/**
|
|
48
|
+
* Hold the active log levels for the logger.
|
|
49
|
+
* Default: debug
|
|
50
|
+
*/
|
|
51
|
+
private fLogLevel;
|
|
52
|
+
/**
|
|
53
|
+
* Hold providers
|
|
54
|
+
*/
|
|
55
|
+
private fProviders;
|
|
56
|
+
/**
|
|
57
|
+
* Hold providers level
|
|
58
|
+
*/
|
|
59
|
+
private fProvidersLevel;
|
|
60
|
+
/**
|
|
61
|
+
* Configure logger
|
|
62
|
+
* @param options
|
|
63
|
+
*/
|
|
64
|
+
configure(options: LoggerTypes.Options): void;
|
|
65
|
+
/**
|
|
66
|
+
* Logs an informational message.
|
|
67
|
+
* @param args - Additional parameters to be logged
|
|
68
|
+
* @returns A value determined by the implementing class
|
|
69
|
+
*/
|
|
70
|
+
debug(...args: LoggerTypes.Arg[]): void;
|
|
71
|
+
/**
|
|
72
|
+
* Logs an informational message.
|
|
73
|
+
* @param args - Additional parameters to be logged
|
|
74
|
+
* @returns A value determined by the implementing class
|
|
75
|
+
*/
|
|
76
|
+
info(...args: LoggerTypes.Arg[]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Logs a warning message.
|
|
79
|
+
* @param args - Additional parameters to be logged
|
|
80
|
+
* @returns A value determined by the implementing class
|
|
81
|
+
*/
|
|
82
|
+
warn(...args: LoggerTypes.Arg[]): void;
|
|
83
|
+
/**
|
|
84
|
+
* Logs an error message.
|
|
85
|
+
* @param args - Additional parameters to be logged
|
|
86
|
+
* @returns A value determined by the implementing class
|
|
87
|
+
*/
|
|
88
|
+
error(...args: LoggerTypes.Arg[]): void;
|
|
89
|
+
/**
|
|
90
|
+
* Prints a log message according to the specified format and level.
|
|
91
|
+
* This is an abstract method that should be implemented by subclasses.
|
|
92
|
+
* @param message - The log message object containing level, tag, and arguments
|
|
93
|
+
* @throws {Error} When called directly on BaseLogger (must be implemented by subclass)
|
|
94
|
+
* @protected
|
|
95
|
+
*/
|
|
96
|
+
protected printMessage(message: LoggerTypes.Message): void;
|
|
97
|
+
}
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region src/Utils/Utils.d.ts
|
|
100
|
+
type ColorTextFn = (text: string) => string;
|
|
101
|
+
/**
|
|
102
|
+
* Checks if target level is enabled.
|
|
103
|
+
* @param targetLevel target level
|
|
104
|
+
* @param logLevels array of enabled log levels
|
|
105
|
+
*/
|
|
106
|
+
declare function isLogLevelEnabled(targetLevel: LoggerTypes.Level, currentLevel: LoggerTypes.Level): boolean;
|
|
107
|
+
declare const colors: Record<string, ColorTextFn>;
|
|
108
|
+
//#endregion
|
|
109
|
+
export { BaseLogger, Logger, LoggerTypes, colors, isLogLevelEnabled };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
|
+
import { colors, isLogLevelEnabled } from "./Utils-5578ynXS.mjs";
|
|
2
|
+
import "node:module";
|
|
1
3
|
import { Container, Inject } from "@vercube/di";
|
|
2
4
|
|
|
3
|
-
//#region
|
|
5
|
+
//#region rolldown:runtime
|
|
6
|
+
var __create = Object.create;
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __commonJS = (cb, mod) => function() {
|
|
13
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
17
|
+
key = keys[i];
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: ((k) => from[k]).bind(null, key),
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: true
|
|
28
|
+
}) : target, mod));
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/Common/Logger.ts
|
|
4
32
|
/**
|
|
5
33
|
* Abstract base class for implementing logging services.
|
|
6
34
|
* Provides a standard interface for logging at different levels.
|
|
@@ -9,54 +37,20 @@ import { Container, Inject } from "@vercube/di";
|
|
|
9
37
|
var Logger = class {};
|
|
10
38
|
|
|
11
39
|
//#endregion
|
|
12
|
-
//#region
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* @param logLevels array of enabled log levels
|
|
23
|
-
*/
|
|
24
|
-
function isLogLevelEnabled(targetLevel, currentLevel) {
|
|
25
|
-
return LOG_LEVEL_VALUES[targetLevel] >= LOG_LEVEL_VALUES[currentLevel];
|
|
26
|
-
}
|
|
27
|
-
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
28
|
-
const colorIfAllowed = (colorFn) => {
|
|
29
|
-
const wrappedFn = (text) => {
|
|
30
|
-
return isColorAllowed() ? colorFn(text) : text;
|
|
31
|
-
};
|
|
32
|
-
return wrappedFn;
|
|
33
|
-
};
|
|
34
|
-
const colors = {
|
|
35
|
-
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
36
|
-
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|
|
37
|
-
yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
|
|
38
|
-
red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
|
|
39
|
-
magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
|
|
40
|
-
cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
|
|
41
|
-
};
|
|
42
|
-
const LOG_LEVEL_COLORS = {
|
|
43
|
-
debug: colors.green,
|
|
44
|
-
info: colors.bold,
|
|
45
|
-
warn: colors.yellow,
|
|
46
|
-
error: colors.red
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
//#endregion
|
|
50
|
-
//#region node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/esm/decorate.js
|
|
51
|
-
function __decorate(decorators, target, key, desc) {
|
|
52
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
53
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
54
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
55
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
56
|
-
}
|
|
40
|
+
//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.1/node_modules/@oxc-project/runtime/src/helpers/decorate.js
|
|
41
|
+
var require_decorate = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.1/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
|
|
42
|
+
function __decorate(decorators, target, key, desc) {
|
|
43
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
44
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
45
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
46
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
47
|
+
}
|
|
48
|
+
module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
49
|
+
} });
|
|
57
50
|
|
|
58
51
|
//#endregion
|
|
59
|
-
//#region
|
|
52
|
+
//#region src/Service/BaseLogger.ts
|
|
53
|
+
var import_decorate = __toESM(require_decorate());
|
|
60
54
|
var BaseLogger = class {
|
|
61
55
|
gContainer;
|
|
62
56
|
/**
|
|
@@ -67,11 +61,11 @@ var BaseLogger = class {
|
|
|
67
61
|
/**
|
|
68
62
|
* Hold providers
|
|
69
63
|
*/
|
|
70
|
-
fProviders = new Map();
|
|
64
|
+
fProviders = /* @__PURE__ */ new Map();
|
|
71
65
|
/**
|
|
72
66
|
* Hold providers level
|
|
73
67
|
*/
|
|
74
|
-
fProvidersLevel = new Map();
|
|
68
|
+
fProvidersLevel = /* @__PURE__ */ new Map();
|
|
75
69
|
/**
|
|
76
70
|
* Configure logger
|
|
77
71
|
* @param options
|
|
@@ -147,7 +141,7 @@ var BaseLogger = class {
|
|
|
147
141
|
for (const [, provider] of providersToProcess) provider.processMessage(message);
|
|
148
142
|
}
|
|
149
143
|
};
|
|
150
|
-
|
|
144
|
+
(0, import_decorate.default)([Inject(Container)], BaseLogger.prototype, "gContainer", void 0);
|
|
151
145
|
|
|
152
146
|
//#endregion
|
|
153
147
|
export { BaseLogger, Logger, colors, isLogLevelEnabled };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vercube/logger",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Logger module for Vercube framework",
|
|
5
5
|
"repository": "@vercube/logger",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,24 +9,20 @@
|
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
|
-
"import": "./dist/index.mjs"
|
|
13
|
-
"require": "./dist/index.cjs"
|
|
12
|
+
"import": "./dist/index.mjs"
|
|
14
13
|
},
|
|
15
14
|
"./providers": {
|
|
16
15
|
"types": "./dist/Providers/index.d.ts",
|
|
17
|
-
"import": "./dist/Providers/index.mjs"
|
|
18
|
-
"require": "./dist/Providers/index.cjs"
|
|
16
|
+
"import": "./dist/Providers/index.mjs"
|
|
19
17
|
}
|
|
20
18
|
},
|
|
21
|
-
"main": "./dist/index.cjs",
|
|
22
|
-
"module": "./dist/index.mjs",
|
|
23
19
|
"types": "./dist/index.d.ts",
|
|
24
20
|
"files": [
|
|
25
21
|
"dist",
|
|
26
22
|
"README.md"
|
|
27
23
|
],
|
|
28
24
|
"dependencies": {
|
|
29
|
-
"@vercube/di": "0.0.
|
|
25
|
+
"@vercube/di": "0.0.4"
|
|
30
26
|
},
|
|
31
27
|
"publishConfig": {
|
|
32
28
|
"access": "public"
|
package/dist/Common/Logger.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { LoggerTypes } from "../Types/LoggerTypes.js";
|
|
2
|
-
/**
|
|
3
|
-
* Abstract base class for implementing logging services.
|
|
4
|
-
* Provides a standard interface for logging at different levels.
|
|
5
|
-
* Implementations can customize how logs are processed and stored.
|
|
6
|
-
*/
|
|
7
|
-
export declare abstract class Logger {
|
|
8
|
-
/**
|
|
9
|
-
* Configures the logger with the provided options.
|
|
10
|
-
* This method should be called before using the logger to process logs.
|
|
11
|
-
* @param options - Configuration options for the logger
|
|
12
|
-
* @returns void or Promise<void> if configuration is asynchronous
|
|
13
|
-
*/
|
|
14
|
-
abstract configure(options: LoggerTypes.Options): void;
|
|
15
|
-
/**
|
|
16
|
-
* Logs a message at the specified log level.
|
|
17
|
-
* @param args - Additional parameters to be logged
|
|
18
|
-
* @returns A value determined by the implementing class
|
|
19
|
-
*/
|
|
20
|
-
abstract debug(...args: LoggerTypes.Arg[]): void;
|
|
21
|
-
/**
|
|
22
|
-
* Logs an informational message.
|
|
23
|
-
* @param args - Additional parameters to be logged
|
|
24
|
-
* @returns A value determined by the implementing class
|
|
25
|
-
*/
|
|
26
|
-
abstract info(...args: LoggerTypes.Arg[]): void;
|
|
27
|
-
/**
|
|
28
|
-
* Logs a warning message.
|
|
29
|
-
* @param args - Additional parameters to be logged
|
|
30
|
-
* @returns A value determined by the implementing class
|
|
31
|
-
*/
|
|
32
|
-
abstract warn(...args: LoggerTypes.Arg[]): void;
|
|
33
|
-
/**
|
|
34
|
-
* Logs an error message.
|
|
35
|
-
* @param args - Additional parameters to be logged
|
|
36
|
-
* @returns A value determined by the implementing class
|
|
37
|
-
*/
|
|
38
|
-
abstract error(...args: LoggerTypes.Arg[]): void;
|
|
39
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { LoggerTypes } from "../Types/LoggerTypes.js";
|
|
2
|
-
/**
|
|
3
|
-
* Abstract base class for implementing log provider.
|
|
4
|
-
* Providers are responsible for processing and outputting log messages to various destinations.
|
|
5
|
-
* Each appender can be initialized with custom options and handles message processing according to its implementation.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of options used to initialize the appender
|
|
8
|
-
*/
|
|
9
|
-
export declare abstract class LoggerProvider<T = unknown> {
|
|
10
|
-
/**
|
|
11
|
-
* Initializes the appender with the provided options.
|
|
12
|
-
* This method should be called before using the appender to process messages.
|
|
13
|
-
*
|
|
14
|
-
* @param options - Configuration options for the appender
|
|
15
|
-
* @returns void or Promise<void> if initialization is asynchronous
|
|
16
|
-
*/
|
|
17
|
-
abstract initialize(options: T): void | Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Processes a log message according to the appender's implementation.
|
|
20
|
-
* This method handles the actual logging logic specific to each appender type.
|
|
21
|
-
*
|
|
22
|
-
* @param message - The log message to process, containing level, tag, and other metadata
|
|
23
|
-
* @returns void or Promise<void> if processing is asynchronous
|
|
24
|
-
*/
|
|
25
|
-
abstract processMessage(message: LoggerTypes.Message): void | Promise<void>;
|
|
26
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { LoggerProvider } from "../Common/LoggerProvider.js";
|
|
2
|
-
import { LoggerTypes } from "../Types/LoggerTypes.js";
|
|
3
|
-
/**
|
|
4
|
-
* ConsoleProvider class for logging messages to the console.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ConsoleProvider extends LoggerProvider {
|
|
7
|
-
/**
|
|
8
|
-
* Initializes the appender with the provided options.
|
|
9
|
-
* This method should be called before using the appender to process messages.
|
|
10
|
-
*/
|
|
11
|
-
initialize(): void;
|
|
12
|
-
/**
|
|
13
|
-
* Prints a log message according to the specified format and level.
|
|
14
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
15
|
-
* @protected
|
|
16
|
-
*/
|
|
17
|
-
processMessage(message: LoggerTypes.Message): void;
|
|
18
|
-
}
|
package/dist/Providers/index.cjs
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
//#region packages/logger/src/Common/LoggerProvider.ts
|
|
4
|
-
/**
|
|
5
|
-
* Abstract base class for implementing log provider.
|
|
6
|
-
* Providers are responsible for processing and outputting log messages to various destinations.
|
|
7
|
-
* Each appender can be initialized with custom options and handles message processing according to its implementation.
|
|
8
|
-
*
|
|
9
|
-
* @template T - The type of options used to initialize the appender
|
|
10
|
-
*/
|
|
11
|
-
var LoggerProvider = class {};
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region packages/logger/src/Providers/JsonProvider.ts
|
|
15
|
-
/**
|
|
16
|
-
* A logger implementation that formats log messages as JSON.
|
|
17
|
-
*/
|
|
18
|
-
var JSONProvider = class extends LoggerProvider {
|
|
19
|
-
/**
|
|
20
|
-
* Initializes the appender with the provided options.
|
|
21
|
-
* This method should be called before using the appender to process messages.
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
initialize() {}
|
|
25
|
-
/**
|
|
26
|
-
* Prints a log message according to the specified format and level.
|
|
27
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
28
|
-
* @protected
|
|
29
|
-
*/
|
|
30
|
-
processMessage(message) {
|
|
31
|
-
console.log(JSON.stringify({
|
|
32
|
-
type: message?.type ?? "application_log",
|
|
33
|
-
...message
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
//#endregion
|
|
39
|
-
//#region packages/logger/src/Utils/Utils.ts
|
|
40
|
-
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
41
|
-
const colorIfAllowed = (colorFn) => {
|
|
42
|
-
const wrappedFn = (text) => {
|
|
43
|
-
return isColorAllowed() ? colorFn(text) : text;
|
|
44
|
-
};
|
|
45
|
-
return wrappedFn;
|
|
46
|
-
};
|
|
47
|
-
const colors = {
|
|
48
|
-
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
49
|
-
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|
|
50
|
-
yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
|
|
51
|
-
red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
|
|
52
|
-
magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
|
|
53
|
-
cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
|
|
54
|
-
};
|
|
55
|
-
const LOG_LEVEL_COLORS = {
|
|
56
|
-
debug: colors.green,
|
|
57
|
-
info: colors.bold,
|
|
58
|
-
warn: colors.yellow,
|
|
59
|
-
error: colors.red
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
//#endregion
|
|
63
|
-
//#region packages/logger/src/Providers/ConsoleProvider.ts
|
|
64
|
-
/**
|
|
65
|
-
* ConsoleProvider class for logging messages to the console.
|
|
66
|
-
*/
|
|
67
|
-
var ConsoleProvider = class extends LoggerProvider {
|
|
68
|
-
/**
|
|
69
|
-
* Initializes the appender with the provided options.
|
|
70
|
-
* This method should be called before using the appender to process messages.
|
|
71
|
-
*/
|
|
72
|
-
initialize() {}
|
|
73
|
-
/**
|
|
74
|
-
* Prints a log message according to the specified format and level.
|
|
75
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
76
|
-
* @protected
|
|
77
|
-
*/
|
|
78
|
-
processMessage(message) {
|
|
79
|
-
const date = message.timestamp ? new Date(message.timestamp) : new Date();
|
|
80
|
-
console[message.level](`%s%s${message?.tag ? "%s" : ""} %s`, LOG_LEVEL_COLORS[message.level](`[${date.toISOString().split("T")[1]?.replace("Z", "")}]`), LOG_LEVEL_COLORS[message.level](`[${message.level.toUpperCase().padEnd(5, " ")}]`), message?.tag ? LOG_LEVEL_COLORS[message.level](`[${message.tag}]`) : "", ...message.args);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
exports.ConsoleProvider = ConsoleProvider
|
|
86
|
-
exports.JSONProvider = JSONProvider
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { LoggerTypes } from "../Types/LoggerTypes.js";
|
|
2
|
-
import type { Logger } from "../Common/Logger.js";
|
|
3
|
-
export declare class BaseLogger implements Logger {
|
|
4
|
-
private gContainer;
|
|
5
|
-
/**
|
|
6
|
-
* Hold the active log levels for the logger.
|
|
7
|
-
* Default: debug
|
|
8
|
-
*/
|
|
9
|
-
private fLogLevel;
|
|
10
|
-
/**
|
|
11
|
-
* Hold providers
|
|
12
|
-
*/
|
|
13
|
-
private fProviders;
|
|
14
|
-
/**
|
|
15
|
-
* Hold providers level
|
|
16
|
-
*/
|
|
17
|
-
private fProvidersLevel;
|
|
18
|
-
/**
|
|
19
|
-
* Configure logger
|
|
20
|
-
* @param options
|
|
21
|
-
*/
|
|
22
|
-
configure(options: LoggerTypes.Options): void;
|
|
23
|
-
/**
|
|
24
|
-
* Logs an informational message.
|
|
25
|
-
* @param args - Additional parameters to be logged
|
|
26
|
-
* @returns A value determined by the implementing class
|
|
27
|
-
*/
|
|
28
|
-
debug(...args: LoggerTypes.Arg[]): void;
|
|
29
|
-
/**
|
|
30
|
-
* Logs an informational message.
|
|
31
|
-
* @param args - Additional parameters to be logged
|
|
32
|
-
* @returns A value determined by the implementing class
|
|
33
|
-
*/
|
|
34
|
-
info(...args: LoggerTypes.Arg[]): void;
|
|
35
|
-
/**
|
|
36
|
-
* Logs a warning message.
|
|
37
|
-
* @param args - Additional parameters to be logged
|
|
38
|
-
* @returns A value determined by the implementing class
|
|
39
|
-
*/
|
|
40
|
-
warn(...args: LoggerTypes.Arg[]): void;
|
|
41
|
-
/**
|
|
42
|
-
* Logs an error message.
|
|
43
|
-
* @param args - Additional parameters to be logged
|
|
44
|
-
* @returns A value determined by the implementing class
|
|
45
|
-
*/
|
|
46
|
-
error(...args: LoggerTypes.Arg[]): void;
|
|
47
|
-
/**
|
|
48
|
-
* Prints a log message according to the specified format and level.
|
|
49
|
-
* This is an abstract method that should be implemented by subclasses.
|
|
50
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
51
|
-
* @throws {Error} When called directly on BaseLogger (must be implemented by subclass)
|
|
52
|
-
* @protected
|
|
53
|
-
*/
|
|
54
|
-
protected printMessage(message: LoggerTypes.Message): void;
|
|
55
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { IOC } from "@vercube/di";
|
|
2
|
-
import type { LoggerProvider } from "../Common/LoggerProvider.js";
|
|
3
|
-
export declare namespace LoggerTypes {
|
|
4
|
-
type Level = "debug" | "info" | "warn" | "error";
|
|
5
|
-
type Arg = any;
|
|
6
|
-
interface Message {
|
|
7
|
-
level: Level;
|
|
8
|
-
args: Arg[];
|
|
9
|
-
tag?: string;
|
|
10
|
-
pid?: number;
|
|
11
|
-
type?: "access_log" | "application_log";
|
|
12
|
-
timestamp?: number;
|
|
13
|
-
}
|
|
14
|
-
type LogProviderOptions<T extends IOC.Newable<LoggerProvider>> = Parameters<InstanceType<T>["initialize"]>[0] & {
|
|
15
|
-
logLevel?: Level
|
|
16
|
-
};
|
|
17
|
-
interface LogAppender<T extends IOC.Newable<LoggerProvider>> {
|
|
18
|
-
name: string;
|
|
19
|
-
provider: T;
|
|
20
|
-
logLevel?: Level;
|
|
21
|
-
options?: LogProviderOptions<T>;
|
|
22
|
-
}
|
|
23
|
-
interface Options {
|
|
24
|
-
logLevel?: Level;
|
|
25
|
-
providers?: LogAppender<any>[];
|
|
26
|
-
}
|
|
27
|
-
}
|
package/dist/Utils/Utils.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { LoggerTypes } from "../Types/LoggerTypes.js";
|
|
2
|
-
type ColorTextFn = (text: string) => string;
|
|
3
|
-
/**
|
|
4
|
-
* Checks if target level is enabled.
|
|
5
|
-
* @param targetLevel target level
|
|
6
|
-
* @param logLevels array of enabled log levels
|
|
7
|
-
*/
|
|
8
|
-
export declare function isLogLevelEnabled(targetLevel: LoggerTypes.Level, currentLevel: LoggerTypes.Level): boolean;
|
|
9
|
-
export declare const colors: Record<string, ColorTextFn>;
|
|
10
|
-
export declare const LOG_LEVEL_COLORS: Record<LoggerTypes.Level, ColorTextFn>;
|
|
11
|
-
export {};
|
package/dist/index.cjs
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
//#region rolldown:runtime
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __commonJS = (cb, mod) => function() {
|
|
9
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
13
|
-
key = keys[i];
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
|
-
get: ((k) => from[k]).bind(null, key),
|
|
16
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
-
value: mod,
|
|
23
|
-
enumerable: true
|
|
24
|
-
}) : target, mod));
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
const __vercube_di = __toESM(require("@vercube/di"));
|
|
28
|
-
|
|
29
|
-
//#region packages/logger/src/Common/Logger.ts
|
|
30
|
-
/**
|
|
31
|
-
* Abstract base class for implementing logging services.
|
|
32
|
-
* Provides a standard interface for logging at different levels.
|
|
33
|
-
* Implementations can customize how logs are processed and stored.
|
|
34
|
-
*/
|
|
35
|
-
var Logger = class {};
|
|
36
|
-
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region packages/logger/src/Utils/Utils.ts
|
|
39
|
-
const LOG_LEVEL_VALUES = {
|
|
40
|
-
debug: 1,
|
|
41
|
-
info: 2,
|
|
42
|
-
warn: 3,
|
|
43
|
-
error: 4
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Checks if target level is enabled.
|
|
47
|
-
* @param targetLevel target level
|
|
48
|
-
* @param logLevels array of enabled log levels
|
|
49
|
-
*/
|
|
50
|
-
function isLogLevelEnabled(targetLevel, currentLevel) {
|
|
51
|
-
return LOG_LEVEL_VALUES[targetLevel] >= LOG_LEVEL_VALUES[currentLevel];
|
|
52
|
-
}
|
|
53
|
-
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
54
|
-
const colorIfAllowed = (colorFn) => {
|
|
55
|
-
const wrappedFn = (text) => {
|
|
56
|
-
return isColorAllowed() ? colorFn(text) : text;
|
|
57
|
-
};
|
|
58
|
-
return wrappedFn;
|
|
59
|
-
};
|
|
60
|
-
const colors = {
|
|
61
|
-
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
62
|
-
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|
|
63
|
-
yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
|
|
64
|
-
red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
|
|
65
|
-
magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
|
|
66
|
-
cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
|
|
67
|
-
};
|
|
68
|
-
const LOG_LEVEL_COLORS = {
|
|
69
|
-
debug: colors.green,
|
|
70
|
-
info: colors.bold,
|
|
71
|
-
warn: colors.yellow,
|
|
72
|
-
error: colors.red
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
//#endregion
|
|
76
|
-
//#region node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
|
|
77
|
-
var require_decorate = __commonJS({ "node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
|
|
78
|
-
function __decorate(decorators, target, key, desc) {
|
|
79
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
80
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
81
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
82
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
83
|
-
}
|
|
84
|
-
module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
85
|
-
} });
|
|
86
|
-
var import_decorate = __toESM(require_decorate(), 1);
|
|
87
|
-
|
|
88
|
-
//#endregion
|
|
89
|
-
//#region packages/logger/src/Service/BaseLogger.ts
|
|
90
|
-
var BaseLogger = class {
|
|
91
|
-
gContainer;
|
|
92
|
-
/**
|
|
93
|
-
* Hold the active log levels for the logger.
|
|
94
|
-
* Default: debug
|
|
95
|
-
*/
|
|
96
|
-
fLogLevel = "debug";
|
|
97
|
-
/**
|
|
98
|
-
* Hold providers
|
|
99
|
-
*/
|
|
100
|
-
fProviders = new Map();
|
|
101
|
-
/**
|
|
102
|
-
* Hold providers level
|
|
103
|
-
*/
|
|
104
|
-
fProvidersLevel = new Map();
|
|
105
|
-
/**
|
|
106
|
-
* Configure logger
|
|
107
|
-
* @param options
|
|
108
|
-
*/
|
|
109
|
-
configure(options) {
|
|
110
|
-
this.fLogLevel = options?.logLevel ?? "debug";
|
|
111
|
-
if (!options?.providers?.length) return;
|
|
112
|
-
this.fProviders.clear();
|
|
113
|
-
for (const logger of options.providers) try {
|
|
114
|
-
const provider = this.gContainer.resolve(logger.provider);
|
|
115
|
-
provider.initialize(logger.options);
|
|
116
|
-
this.fProviders.set(logger.name, provider);
|
|
117
|
-
this.fProvidersLevel.set(logger.name, logger.logLevel ?? this.fLogLevel);
|
|
118
|
-
} catch (error) {
|
|
119
|
-
console.error(`Failed to initialize logger provider: ${logger.provider.name}`, error);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Logs an informational message.
|
|
124
|
-
* @param args - Additional parameters to be logged
|
|
125
|
-
* @returns A value determined by the implementing class
|
|
126
|
-
*/
|
|
127
|
-
debug(...args) {
|
|
128
|
-
this.printMessage({
|
|
129
|
-
level: "debug",
|
|
130
|
-
args
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Logs an informational message.
|
|
135
|
-
* @param args - Additional parameters to be logged
|
|
136
|
-
* @returns A value determined by the implementing class
|
|
137
|
-
*/
|
|
138
|
-
info(...args) {
|
|
139
|
-
this.printMessage({
|
|
140
|
-
level: "info",
|
|
141
|
-
args
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Logs a warning message.
|
|
146
|
-
* @param args - Additional parameters to be logged
|
|
147
|
-
* @returns A value determined by the implementing class
|
|
148
|
-
*/
|
|
149
|
-
warn(...args) {
|
|
150
|
-
this.printMessage({
|
|
151
|
-
level: "warn",
|
|
152
|
-
args
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Logs an error message.
|
|
157
|
-
* @param args - Additional parameters to be logged
|
|
158
|
-
* @returns A value determined by the implementing class
|
|
159
|
-
*/
|
|
160
|
-
error(...args) {
|
|
161
|
-
this.printMessage({
|
|
162
|
-
level: "error",
|
|
163
|
-
args
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Prints a log message according to the specified format and level.
|
|
168
|
-
* This is an abstract method that should be implemented by subclasses.
|
|
169
|
-
* @param message - The log message object containing level, tag, and arguments
|
|
170
|
-
* @throws {Error} When called directly on BaseLogger (must be implemented by subclass)
|
|
171
|
-
* @protected
|
|
172
|
-
*/
|
|
173
|
-
printMessage(message) {
|
|
174
|
-
const providersToProcess = [...this.fProviders.entries()].filter(([name]) => {
|
|
175
|
-
return isLogLevelEnabled(message.level, this.fProvidersLevel.get(name) ?? this.fLogLevel);
|
|
176
|
-
});
|
|
177
|
-
for (const [, provider] of providersToProcess) provider.processMessage(message);
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
(0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_di.Container)], BaseLogger.prototype, "gContainer", void 0);
|
|
181
|
-
|
|
182
|
-
//#endregion
|
|
183
|
-
exports.BaseLogger = BaseLogger
|
|
184
|
-
exports.Logger = Logger
|
|
185
|
-
exports.colors = colors
|
|
186
|
-
exports.isLogLevelEnabled = isLogLevelEnabled
|
package/dist/index.d.ts
DELETED