@decaf-ts/logging 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,74 @@
1
+ import { LoggerFactory } from "./Factory";
2
+ import { LogLevel } from "./constants";
3
+ import { toLogLevel } from "./utils";
4
+ class DefaultLogger {
5
+ constructor(level, clazz, method) {
6
+ this.level = level;
7
+ this.clazz = clazz;
8
+ this.method = method;
9
+ }
10
+ log(level, message, data, profile) {
11
+ if (toLogLevel(level) < toLogLevel(this.level))
12
+ return;
13
+ const { context, app } = data || {};
14
+ // eslint-disable-next-line max-len
15
+ const msg = `${profile ? `[${profile}]` : ""}${app ? `[${app}]` : ""}${context ? `[${context}]` : ""}${this.clazz ? `[${this.clazz}]` : ""}${this.method ? `[${this.method}]` : ""} ${message}`;
16
+ switch (level) {
17
+ case LogLevel.Fatal:
18
+ case LogLevel.Error:
19
+ return console.error(msg);
20
+ case LogLevel.Warn:
21
+ return console.warn(msg);
22
+ case LogLevel.Info:
23
+ return console.info(msg);
24
+ case LogLevel.Http:
25
+ case LogLevel.Verbose:
26
+ case LogLevel.Debug:
27
+ case LogLevel.Silly:
28
+ return console.debug(msg);
29
+ default:
30
+ throw new Error(`Invalid log level: ${level}`);
31
+ }
32
+ }
33
+ silly(message, data, profile) {
34
+ return this.log(LogLevel.Silly, message, data, profile);
35
+ }
36
+ verbose(message, data, profile) {
37
+ return this.log(LogLevel.Verbose, message, data, profile);
38
+ }
39
+ debug(message, data, profile) {
40
+ return this.log(LogLevel.Debug, message, data, profile);
41
+ }
42
+ info(message, data, profile) {
43
+ return this.log(LogLevel.Info, message, data, profile);
44
+ }
45
+ warn(message, data, profile) {
46
+ return this.log(LogLevel.Warn, message, data, profile);
47
+ }
48
+ error(message, data, profile) {
49
+ return this.log(LogLevel.Error, message, data, profile);
50
+ }
51
+ emerg(message, data, profile) {
52
+ return this.log(LogLevel.Fatal, message, data, profile);
53
+ }
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ profile(id, meta) {
56
+ throw new Error("Not implemented");
57
+ }
58
+ }
59
+ export class DefaultLoggerFactory extends LoggerFactory {
60
+ constructor(level) {
61
+ super(level);
62
+ }
63
+ forClass(clazz) {
64
+ return new DefaultLogger(this.level, clazz.name);
65
+ }
66
+ forMethod(clazz, method) {
67
+ return new DefaultLogger(this.level, clazz.name, typeof method === "string" ? method : method.name);
68
+ }
69
+ get() {
70
+ return new DefaultLogger(this.level);
71
+ }
72
+ }
73
+
74
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDO0lBQ25ELENBQUM7SUFDRCxTQUFTLENBQ1AsS0FBa0MsRUFDbEMsTUFBMEM7UUFFMUMsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsSUFBSSxDQUFDLEtBQUssRUFDVixLQUFLLENBQUMsSUFBSSxFQUNWLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiLi9GYWN0b3J5XCI7XG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTG9nRGF0YSwgTG9nZ2VyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgdG9Mb2dMZXZlbCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmNsYXNzIERlZmF1bHRMb2dnZXIgaW1wbGVtZW50cyBMb2dnZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbGV2ZWw6IExvZ0xldmVsLFxuICAgIHByb3RlY3RlZCBjbGF6ej86IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgbWV0aG9kPzogc3RyaW5nXG4gICkge31cblxuICBsb2coXG4gICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgIG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRvTG9nTGV2ZWwobGV2ZWwpIDwgdG9Mb2dMZXZlbCh0aGlzLmxldmVsKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyBjb250ZXh0LCBhcHAgfSA9IGRhdGEgfHwge307XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIGNvbnN0IG1zZyA9IGAke3Byb2ZpbGUgPyBgWyR7cHJvZmlsZX1dYCA6IFwiXCJ9JHthcHAgPyBgWyR7YXBwfV1gIDogXCJcIn0ke2NvbnRleHQgPyBgWyR7Y29udGV4dH1dYCA6IFwiXCJ9JHt0aGlzLmNsYXp6ID8gYFske3RoaXMuY2xhenp9XWAgOiBcIlwifSR7dGhpcy5tZXRob2QgPyBgWyR7dGhpcy5tZXRob2R9XWAgOiBcIlwifSAke21lc3NhZ2V9YDtcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgY2FzZSBMb2dMZXZlbC5GYXRhbDpcbiAgICBjYXNlIExvZ0xldmVsLkVycm9yOlxuICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICBjYXNlIExvZ0xldmVsLldhcm46XG4gICAgICByZXR1cm4gY29uc29sZS53YXJuKG1zZyk7XG4gICAgY2FzZSBMb2dMZXZlbC5JbmZvOlxuICAgICAgcmV0dXJuIGNvbnNvbGUuaW5mbyhtc2cpO1xuICAgIGNhc2UgTG9nTGV2ZWwuSHR0cDpcbiAgICBjYXNlIExvZ0xldmVsLlZlcmJvc2U6XG4gICAgY2FzZSBMb2dMZXZlbC5EZWJ1ZzpcbiAgICBjYXNlIExvZ0xldmVsLlNpbGx5OlxuICAgICAgcmV0dXJuIGNvbnNvbGUuZGVidWcobXNnKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxvZyBsZXZlbDogJHtsZXZlbH1gKTtcbiAgICB9XG4gIH1cbiAgc2lsbHkoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9nKExvZ0xldmVsLlNpbGx5LCBtZXNzYWdlLCBkYXRhLCBwcm9maWxlKTtcbiAgfVxuXG4gIHZlcmJvc2UoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9nKExvZ0xldmVsLlZlcmJvc2UsIG1lc3NhZ2UsIGRhdGEsIHByb2ZpbGUpO1xuICB9XG5cbiAgZGVidWcoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9nKExvZ0xldmVsLkRlYnVnLCBtZXNzYWdlLCBkYXRhLCBwcm9maWxlKTtcbiAgfVxuICBpbmZvKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBkYXRhPzogTG9nRGF0YSB8IHVuZGVmaW5lZCxcbiAgICBwcm9maWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvZyhMb2dMZXZlbC5JbmZvLCBtZXNzYWdlLCBkYXRhLCBwcm9maWxlKTtcbiAgfVxuICB3YXJuKFxuICAgIG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9nKExvZ0xldmVsLldhcm4sIG1lc3NhZ2UsIGRhdGEsIHByb2ZpbGUpO1xuICB9XG4gIGVycm9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yLFxuICAgIGRhdGE/OiBMb2dEYXRhIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9nKExvZ0xldmVsLkVycm9yLCBtZXNzYWdlLCBkYXRhLCBwcm9maWxlKTtcbiAgfVxuICBlbWVyZyhcbiAgICBtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcixcbiAgICBkYXRhPzogTG9nRGF0YSB8IHVuZGVmaW5lZCxcbiAgICBwcm9maWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvZyhMb2dMZXZlbC5GYXRhbCwgbWVzc2FnZSwgZGF0YSwgcHJvZmlsZSk7XG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9maWxlKGlkOiBzdHJpbmcgfCBudW1iZXIsIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0TG9nZ2VyRmFjdG9yeSBleHRlbmRzIExvZ2dlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihsZXZlbDogTG9nTGV2ZWwpIHtcbiAgICBzdXBlcihsZXZlbCk7XG4gIH1cblxuICBmb3JDbGFzcyhjbGF6ejogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55KTogTG9nZ2VyIHtcbiAgICByZXR1cm4gbmV3IERlZmF1bHRMb2dnZXIodGhpcy5sZXZlbCwgY2xhenoubmFtZSk7XG4gIH1cbiAgZm9yTWV0aG9kKFxuICAgIGNsYXp6OiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gICAgbWV0aG9kOiBzdHJpbmcgfCAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpXG4gICk6IExvZ2dlciB7XG4gICAgcmV0dXJuIG5ldyBEZWZhdWx0TG9nZ2VyKFxuICAgICAgdGhpcy5sZXZlbCxcbiAgICAgIGNsYXp6Lm5hbWUsXG4gICAgICB0eXBlb2YgbWV0aG9kID09PSBcInN0cmluZ1wiID8gbWV0aG9kIDogbWV0aG9kLm5hbWVcbiAgICApO1xuICB9XG5cbiAgZ2V0KCk6IExvZ2dlciB7XG4gICAgcmV0dXJuIG5ldyBEZWZhdWx0TG9nZ2VyKHRoaXMubGV2ZWwpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ export * from "./constants";
2
+ export * from "./default";
3
+ export * from "./Factory";
4
+ export * from "./interfaces";
5
+ export * from "./logging";
6
+ export * from "./utils";
7
+ /**
8
+ * @summary Module summary
9
+ * @description Module description
10
+ * @module Logging
11
+ */
12
+ /**
13
+ * @summary Logging
14
+ * @description Namespace description
15
+ * @namespace Logging
16
+ * @memberOf module:Logging
17
+ */
18
+ /**
19
+ * @summary stores the current package version
20
+ * @description this is how you should document a constant
21
+ * @const VERSION
22
+ * @memberOf module:ts-workspace
23
+ */
24
+ export declare const VERSION = "0.0.1";
@@ -0,0 +1,26 @@
1
+ export * from "./constants";
2
+ export * from "./default";
3
+ export * from "./Factory";
4
+ export * from "./interfaces";
5
+ export * from "./logging";
6
+ export * from "./utils";
7
+ /**
8
+ * @summary Module summary
9
+ * @description Module description
10
+ * @module Logging
11
+ */
12
+ /**
13
+ * @summary Logging
14
+ * @description Namespace description
15
+ * @namespace Logging
16
+ * @memberOf module:Logging
17
+ */
18
+ /**
19
+ * @summary stores the current package version
20
+ * @description this is how you should document a constant
21
+ * @const VERSION
22
+ * @memberOf module:ts-workspace
23
+ */
24
+ export const VERSION = "0.0.1";
25
+
26
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUV4Qjs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlZmF1bHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhY3RvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTW9kdWxlIHN1bW1hcnlcbiAqIEBkZXNjcmlwdGlvbiBNb2R1bGUgZGVzY3JpcHRpb25cbiAqIEBtb2R1bGUgTG9nZ2luZ1xuICovXG5cbi8qKlxuICogQHN1bW1hcnkgTG9nZ2luZ1xuICogQGRlc2NyaXB0aW9uIE5hbWVzcGFjZSBkZXNjcmlwdGlvblxuICogQG5hbWVzcGFjZSBMb2dnaW5nXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRzLXdvcmtzcGFjZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiMC4wLjFcIjtcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { LogLevel } from "./constants";
2
+ export interface LogData {
3
+ organization?: string;
4
+ context?: string;
5
+ app?: string;
6
+ sourceClass?: string;
7
+ correlationId?: string;
8
+ error?: Error;
9
+ props?: Record<string, any>;
10
+ }
11
+ export interface Logger {
12
+ log(level: LogLevel, message: string | Error, data?: LogData, profile?: string): void;
13
+ silly(message: string, data?: LogData, profile?: string): void;
14
+ debug(message: string, data?: LogData, profile?: string): void;
15
+ info(message: string, data?: LogData, profile?: string): void;
16
+ warn(message: string | Error, data?: LogData, profile?: string): void;
17
+ error(message: string | Error, data?: LogData, profile?: string): void;
18
+ emerg(message: string | Error, data?: LogData, profile?: string): void;
19
+ profile(id: string | number, meta?: Record<string, any>): void;
20
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRGF0YSB7XG4gIG9yZ2FuaXphdGlvbj86IHN0cmluZzsgLy8gT3JnYW5pemF0aW9uIG9yIHByb2plY3QgbmFtZVxuICBjb250ZXh0Pzogc3RyaW5nOyAvLyBCb3VuZGVkIENvbnRleHQgbmFtZVxuICBhcHA/OiBzdHJpbmc7IC8vIEFwcGxpY2F0aW9uIG9yIE1pY3Jvc2VydmljZSBuYW1lXG4gIHNvdXJjZUNsYXNzPzogc3RyaW5nOyAvLyBDbGFzc25hbWUgb2YgdGhlIHNvdXJjZVxuICBjb3JyZWxhdGlvbklkPzogc3RyaW5nOyAvLyBDb3JyZWxhdGlvbiBJRFxuICBlcnJvcj86IEVycm9yOyAvLyBFcnJvciBvYmplY3RcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBBZGRpdGlvbmFsIGN1c3RvbSBwcm9wZXJ0aWVzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyIHtcbiAgbG9nKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcixcbiAgICBkYXRhPzogTG9nRGF0YSxcbiAgICBwcm9maWxlPzogc3RyaW5nXG4gICk6IHZvaWQ7XG4gIHNpbGx5KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBMb2dEYXRhLCBwcm9maWxlPzogc3RyaW5nKTogdm9pZDtcbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBMb2dEYXRhLCBwcm9maWxlPzogc3RyaW5nKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBlbWVyZyhtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBwcm9maWxlKGlkOiBzdHJpbmcgfCBudW1iZXIsIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Logger } from "./interfaces";
2
+ import { LoggerFactory } from "./Factory";
3
+ import { LogLevel } from "./constants";
4
+ export declare class Logging {
5
+ private static _level;
6
+ private static _factory;
7
+ private static _instance;
8
+ private static cacheByClass;
9
+ private static cacheByClassMethod;
10
+ private static global;
11
+ private constructor();
12
+ static get level(): LogLevel;
13
+ static set level(level: LogLevel);
14
+ protected static get instance(): LoggerFactory;
15
+ static set factory(factory: {
16
+ new (level: LogLevel): LoggerFactory;
17
+ });
18
+ static forClass(clazz: {
19
+ new (...args: any[]): any;
20
+ }): Logger;
21
+ static forMethod(clazz: {
22
+ new (...args: any[]): any;
23
+ }, method: ((...args: any[]) => any) | string): Logger;
24
+ static get(): Logger;
25
+ }
@@ -0,0 +1,45 @@
1
+ import { LogLevel } from "./constants";
2
+ import { DefaultLoggerFactory } from "./default";
3
+ export class Logging {
4
+ static { this._level = LogLevel.Info; }
5
+ static { this._factory = DefaultLoggerFactory; }
6
+ static { this.cacheByClass = {}; }
7
+ static { this.cacheByClassMethod = {}; }
8
+ constructor() { }
9
+ static get level() {
10
+ return this._level;
11
+ }
12
+ static set level(level) {
13
+ this._level = level;
14
+ }
15
+ static get instance() {
16
+ if (!this._instance)
17
+ this._instance = new this._factory(this.level);
18
+ return this._instance;
19
+ }
20
+ static set factory(factory) {
21
+ this._factory = factory;
22
+ }
23
+ static forClass(clazz) {
24
+ const name = clazz.name;
25
+ if (!(name in this.cacheByClass))
26
+ this.cacheByClass[name] = this.instance.forClass(clazz);
27
+ return this.cacheByClass[name];
28
+ }
29
+ static forMethod(clazz, method) {
30
+ const name = clazz.name;
31
+ if (!(name in this.cacheByClassMethod))
32
+ this.cacheByClassMethod[name] = {};
33
+ const methodName = typeof method === "string" ? method : method.name;
34
+ if (!(methodName in this.cacheByClassMethod[name]))
35
+ this.cacheByClassMethod[name][methodName] = this.instance.forMethod(clazz, method);
36
+ return this.cacheByClassMethod[name][methodName];
37
+ }
38
+ static get() {
39
+ if (!this.global)
40
+ this.global = this.instance.get();
41
+ return this.global;
42
+ }
43
+ }
44
+
45
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE1BQU0sT0FBTyxPQUFPO2FBQ0gsV0FBTSxHQUFhLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDakMsYUFBUSxHQUNyQixvQkFBb0IsQ0FBQzthQUdSLGlCQUFZLEdBQTJCLEVBQUUsQ0FBQzthQUMxQyx1QkFBa0IsR0FDL0IsRUFBRSxDQUFDO0lBR0wsZ0JBQXVCLENBQUM7SUFFeEIsTUFBTSxLQUFLLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sS0FBSyxLQUFLLENBQUMsS0FBZTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRVMsTUFBTSxLQUFLLFFBQVE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxLQUFLLE9BQU8sQ0FBQyxPQUFpRDtRQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFvQztRQUNsRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUNkLEtBQW9DLEVBQ3BDLE1BQTBDO1FBRTFDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDckUsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQ2pFLEtBQUssRUFDTCxNQUFNLENBQ1AsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQyIsImZpbGUiOiJsb2dnaW5nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCIuL0ZhY3RvcnlcIjtcbmltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nZ2VyRmFjdG9yeSB9IGZyb20gXCIuL2RlZmF1bHRcIjtcblxuZXhwb3J0IGNsYXNzIExvZ2dpbmcge1xuICBwcml2YXRlIHN0YXRpYyBfbGV2ZWw6IExvZ0xldmVsID0gTG9nTGV2ZWwuSW5mbztcbiAgcHJpdmF0ZSBzdGF0aWMgX2ZhY3Rvcnk6IHsgbmV3IChsZXZlbDogTG9nTGV2ZWwpOiBMb2dnZXJGYWN0b3J5IH0gPVxuICAgIERlZmF1bHRMb2dnZXJGYWN0b3J5O1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IExvZ2dlckZhY3Rvcnk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGVCeUNsYXNzOiBSZWNvcmQ8c3RyaW5nLCBMb2dnZXI+ID0ge307XG4gIHByaXZhdGUgc3RhdGljIGNhY2hlQnlDbGFzc01ldGhvZDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgTG9nZ2VyPj4gPVxuICAgIHt9O1xuICBwcml2YXRlIHN0YXRpYyBnbG9iYWw6IExvZ2dlcjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICBzdGF0aWMgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLl9sZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBzZXQgbGV2ZWwobGV2ZWw6IExvZ0xldmVsKSB7XG4gICAgdGhpcy5fbGV2ZWwgPSBsZXZlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IExvZ2dlckZhY3Rvcnkge1xuICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHRoaXMuX2luc3RhbmNlID0gbmV3IHRoaXMuX2ZhY3RvcnkodGhpcy5sZXZlbCk7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICB9XG5cbiAgc3RhdGljIHNldCBmYWN0b3J5KGZhY3Rvcnk6IHsgbmV3IChsZXZlbDogTG9nTGV2ZWwpOiBMb2dnZXJGYWN0b3J5IH0pIHtcbiAgICB0aGlzLl9mYWN0b3J5ID0gZmFjdG9yeTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDbGFzcyhjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0pIHtcbiAgICBjb25zdCBuYW1lID0gY2xhenoubmFtZTtcbiAgICBpZiAoIShuYW1lIGluIHRoaXMuY2FjaGVCeUNsYXNzKSlcbiAgICAgIHRoaXMuY2FjaGVCeUNsYXNzW25hbWVdID0gdGhpcy5pbnN0YW5jZS5mb3JDbGFzcyhjbGF6eik7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVCeUNsYXNzW25hbWVdO1xuICB9XG5cbiAgc3RhdGljIGZvck1ldGhvZChcbiAgICBjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0sXG4gICAgbWV0aG9kOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3RyaW5nXG4gICk6IExvZ2dlciB7XG4gICAgY29uc3QgbmFtZSA9IGNsYXp6Lm5hbWU7XG4gICAgaWYgKCEobmFtZSBpbiB0aGlzLmNhY2hlQnlDbGFzc01ldGhvZCkpIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdID0ge307XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHR5cGVvZiBtZXRob2QgPT09IFwic3RyaW5nXCIgPyBtZXRob2QgOiBtZXRob2QubmFtZTtcbiAgICBpZiAoIShtZXRob2ROYW1lIGluIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdKSlcbiAgICAgIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdW21ldGhvZE5hbWVdID0gdGhpcy5pbnN0YW5jZS5mb3JNZXRob2QoXG4gICAgICAgIGNsYXp6LFxuICAgICAgICBtZXRob2RcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdW21ldGhvZE5hbWVdO1xuICB9XG5cbiAgc3RhdGljIGdldCgpOiBMb2dnZXIge1xuICAgIGlmICghdGhpcy5nbG9iYWwpIHRoaXMuZ2xvYmFsID0gdGhpcy5pbnN0YW5jZS5nZXQoKTtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import { LogLevel } from "./constants";
2
+ export declare function toLogLevel(level: LogLevel): number;
@@ -0,0 +1,9 @@
1
+ import { NumericLogLevels } from "./constants";
2
+ export function toLogLevel(level) {
3
+ if (level.toString() in NumericLogLevels) {
4
+ return NumericLogLevels[level.toString()];
5
+ }
6
+ throw new Error(`Invalid level: ${level.toString()}`);
7
+ }
8
+
9
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFlO0lBQ3hDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDekMsT0FBUSxnQkFBd0MsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwiZmlsZSI6InV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nTGV2ZWwsIE51bWVyaWNMb2dMZXZlbHMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvTG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogbnVtYmVyIHtcbiAgaWYgKGxldmVsLnRvU3RyaW5nKCkgaW4gTnVtZXJpY0xvZ0xldmVscykge1xuICAgIHJldHVybiAoTnVtZXJpY0xvZ0xldmVscyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtsZXZlbC50b1N0cmluZygpXTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGV2ZWw6ICR7bGV2ZWwudG9TdHJpbmcoKX1gKTtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { LoggerFactory } from "./Factory";
2
+ import { Logger } from "./interfaces";
3
+ import * as winston from "winston";
4
+ import { LogLevel } from "./constants";
5
+ export declare class WinstonLoggerFactory extends LoggerFactory {
6
+ constructor(level: LogLevel);
7
+ protected generate(lvl: LogLevel, clazz?: string, method?: string): winston.Logger;
8
+ forClass(clazz: {
9
+ new (...args: any[]): any;
10
+ }): Logger;
11
+ forMethod(clazz: {
12
+ new (...args: any[]): any;
13
+ }, method: ((...args: any[]) => any) | string): Logger;
14
+ get(): Logger;
15
+ }
@@ -0,0 +1,39 @@
1
+ import { LoggerFactory } from "./Factory";
2
+ import * as winston from "winston";
3
+ export class WinstonLoggerFactory extends LoggerFactory {
4
+ constructor(level) {
5
+ super(level);
6
+ }
7
+ generate(lvl, clazz, method) {
8
+ const config = {
9
+ level: lvl,
10
+ format: winston.format.json(),
11
+ transports: [
12
+ new winston.transports.Console({
13
+ format: winston.format.combine(winston.format.colorize(), winston.format.splat(), winston.format.simple()),
14
+ }),
15
+ ],
16
+ };
17
+ let meta;
18
+ if (clazz || method) {
19
+ meta = {};
20
+ if (clazz)
21
+ meta["service"] = clazz;
22
+ if (method)
23
+ meta["method"] = method;
24
+ config.defaultMeta = meta;
25
+ }
26
+ return winston.createLogger(config);
27
+ }
28
+ forClass(clazz) {
29
+ return this.generate(this.level, clazz.name);
30
+ }
31
+ forMethod(clazz, method) {
32
+ return this.generate(this.level, clazz.name, typeof method === "string" ? method : method.name);
33
+ }
34
+ get() {
35
+ return this.generate(this.level);
36
+ }
37
+ }
38
+
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy93aW5zdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFJbkMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFDckQsWUFBWSxLQUFlO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFUyxRQUFRLENBQUMsR0FBYSxFQUFFLEtBQWMsRUFBRSxNQUFlO1FBQy9ELE1BQU0sTUFBTSxHQUFrQjtZQUM1QixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUM3QixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztvQkFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUM1QixPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUN4QjtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDO1FBQ0YsSUFBSSxJQUE2QixDQUFDO1FBQ2xDLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixJQUFJLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLE1BQU07Z0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUNwQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0M7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxTQUFTLENBQ1AsS0FBb0MsRUFDcEMsTUFBMEM7UUFFMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUNsQixJQUFJLENBQUMsS0FBSyxFQUNWLEtBQUssQ0FBQyxJQUFJLEVBQ1YsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2xELENBQUM7SUFDSixDQUFDO0lBQ0QsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIiwiZmlsZSI6IndpbnN0b24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSBcIi4vRmFjdG9yeVwiO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0ICogYXMgd2luc3RvbiBmcm9tIFwid2luc3RvblwiO1xuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IExvZ2dlck9wdGlvbnMgfSBmcm9tIFwid2luc3RvblwiO1xuXG5leHBvcnQgY2xhc3MgV2luc3RvbkxvZ2dlckZhY3RvcnkgZXh0ZW5kcyBMb2dnZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IobGV2ZWw6IExvZ0xldmVsKSB7XG4gICAgc3VwZXIobGV2ZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbmVyYXRlKGx2bDogTG9nTGV2ZWwsIGNsYXp6Pzogc3RyaW5nLCBtZXRob2Q/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb25maWc6IExvZ2dlck9wdGlvbnMgPSB7XG4gICAgICBsZXZlbDogbHZsLFxuICAgICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCksXG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICAgICAgICAgICAgd2luc3Rvbi5mb3JtYXQuY29sb3JpemUoKSxcbiAgICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnNwbGF0KCksXG4gICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9O1xuICAgIGxldCBtZXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoY2xhenogfHwgbWV0aG9kKSB7XG4gICAgICBtZXRhID0ge307XG4gICAgICBpZiAoY2xhenopIG1ldGFbXCJzZXJ2aWNlXCJdID0gY2xheno7XG4gICAgICBpZiAobWV0aG9kKSBtZXRhW1wibWV0aG9kXCJdID0gbWV0aG9kO1xuICAgICAgY29uZmlnLmRlZmF1bHRNZXRhID0gbWV0YTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbnN0b24uY3JlYXRlTG9nZ2VyKGNvbmZpZyk7XG4gIH1cblxuICBmb3JDbGFzcyhjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0pOiBMb2dnZXIge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlKHRoaXMubGV2ZWwsIGNsYXp6Lm5hbWUpO1xuICB9XG4gIGZvck1ldGhvZChcbiAgICBjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0sXG4gICAgbWV0aG9kOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3RyaW5nXG4gICk6IExvZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGUoXG4gICAgICB0aGlzLmxldmVsLFxuICAgICAgY2xhenoubmFtZSxcbiAgICAgIHR5cGVvZiBtZXRob2QgPT09IFwic3RyaW5nXCIgPyBtZXRob2QgOiBtZXRob2QubmFtZVxuICAgICk7XG4gIH1cbiAgZ2V0KCk6IExvZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGUodGhpcy5sZXZlbCk7XG4gIH1cbn1cbiJdfQ==
package/lib/index.cjs ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.VERSION = void 0;
18
+ __exportStar(require("./constants.cjs"), exports);
19
+ __exportStar(require("./default.cjs"), exports);
20
+ __exportStar(require("./Factory.cjs"), exports);
21
+ __exportStar(require("./interfaces.cjs"), exports);
22
+ __exportStar(require("./logging.cjs"), exports);
23
+ __exportStar(require("./utils.cjs"), exports);
24
+ /**
25
+ * @summary Module summary
26
+ * @description Module description
27
+ * @module Logging
28
+ */
29
+ /**
30
+ * @summary Logging
31
+ * @description Namespace description
32
+ * @namespace Logging
33
+ * @memberOf module:Logging
34
+ */
35
+ /**
36
+ * @summary stores the current package version
37
+ * @description this is how you should document a constant
38
+ * @const VERSION
39
+ * @memberOf module:ts-workspace
40
+ */
41
+ exports.VERSION = "0.0.1";
42
+
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUM3Qiw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBRXhCOzs7O0dBSUc7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsT0FBTyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWZhdWx0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9GYWN0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2dnaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1vZHVsZSBzdW1tYXJ5XG4gKiBAZGVzY3JpcHRpb24gTW9kdWxlIGRlc2NyaXB0aW9uXG4gKiBAbW9kdWxlIExvZ2dpbmdcbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IExvZ2dpbmdcbiAqIEBkZXNjcmlwdGlvbiBOYW1lc3BhY2UgZGVzY3JpcHRpb25cbiAqIEBuYW1lc3BhY2UgTG9nZ2luZ1xuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBzdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAZGVzY3JpcHRpb24gdGhpcyBpcyBob3cgeW91IHNob3VsZCBkb2N1bWVudCBhIGNvbnN0YW50XG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjAuMC4xXCI7XG4iXX0=
package/lib/index.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export * from "./constants";
2
+ export * from "./default";
3
+ export * from "./Factory";
4
+ export * from "./interfaces";
5
+ export * from "./logging";
6
+ export * from "./utils";
7
+ /**
8
+ * @summary Module summary
9
+ * @description Module description
10
+ * @module Logging
11
+ */
12
+ /**
13
+ * @summary Logging
14
+ * @description Namespace description
15
+ * @namespace Logging
16
+ * @memberOf module:Logging
17
+ */
18
+ /**
19
+ * @summary stores the current package version
20
+ * @description this is how you should document a constant
21
+ * @const VERSION
22
+ * @memberOf module:ts-workspace
23
+ */
24
+ export declare const VERSION = "0.0.1";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRGF0YSB7XG4gIG9yZ2FuaXphdGlvbj86IHN0cmluZzsgLy8gT3JnYW5pemF0aW9uIG9yIHByb2plY3QgbmFtZVxuICBjb250ZXh0Pzogc3RyaW5nOyAvLyBCb3VuZGVkIENvbnRleHQgbmFtZVxuICBhcHA/OiBzdHJpbmc7IC8vIEFwcGxpY2F0aW9uIG9yIE1pY3Jvc2VydmljZSBuYW1lXG4gIHNvdXJjZUNsYXNzPzogc3RyaW5nOyAvLyBDbGFzc25hbWUgb2YgdGhlIHNvdXJjZVxuICBjb3JyZWxhdGlvbklkPzogc3RyaW5nOyAvLyBDb3JyZWxhdGlvbiBJRFxuICBlcnJvcj86IEVycm9yOyAvLyBFcnJvciBvYmplY3RcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBBZGRpdGlvbmFsIGN1c3RvbSBwcm9wZXJ0aWVzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyIHtcbiAgbG9nKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcixcbiAgICBkYXRhPzogTG9nRGF0YSxcbiAgICBwcm9maWxlPzogc3RyaW5nXG4gICk6IHZvaWQ7XG4gIHNpbGx5KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBMb2dEYXRhLCBwcm9maWxlPzogc3RyaW5nKTogdm9pZDtcbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBMb2dEYXRhLCBwcm9maWxlPzogc3RyaW5nKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBlbWVyZyhtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgZGF0YT86IExvZ0RhdGEsIHByb2ZpbGU/OiBzdHJpbmcpOiB2b2lkO1xuICBwcm9maWxlKGlkOiBzdHJpbmcgfCBudW1iZXIsIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { LogLevel } from "./constants";
2
+ export interface LogData {
3
+ organization?: string;
4
+ context?: string;
5
+ app?: string;
6
+ sourceClass?: string;
7
+ correlationId?: string;
8
+ error?: Error;
9
+ props?: Record<string, any>;
10
+ }
11
+ export interface Logger {
12
+ log(level: LogLevel, message: string | Error, data?: LogData, profile?: string): void;
13
+ silly(message: string, data?: LogData, profile?: string): void;
14
+ debug(message: string, data?: LogData, profile?: string): void;
15
+ info(message: string, data?: LogData, profile?: string): void;
16
+ warn(message: string | Error, data?: LogData, profile?: string): void;
17
+ error(message: string | Error, data?: LogData, profile?: string): void;
18
+ emerg(message: string | Error, data?: LogData, profile?: string): void;
19
+ profile(id: string | number, meta?: Record<string, any>): void;
20
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logging = void 0;
4
+ const constants_1 = require("./constants.cjs");
5
+ const default_1 = require("./default.cjs");
6
+ class Logging {
7
+ static { this._level = constants_1.LogLevel.Info; }
8
+ static { this._factory = default_1.DefaultLoggerFactory; }
9
+ static { this.cacheByClass = {}; }
10
+ static { this.cacheByClassMethod = {}; }
11
+ constructor() { }
12
+ static get level() {
13
+ return this._level;
14
+ }
15
+ static set level(level) {
16
+ this._level = level;
17
+ }
18
+ static get instance() {
19
+ if (!this._instance)
20
+ this._instance = new this._factory(this.level);
21
+ return this._instance;
22
+ }
23
+ static set factory(factory) {
24
+ this._factory = factory;
25
+ }
26
+ static forClass(clazz) {
27
+ const name = clazz.name;
28
+ if (!(name in this.cacheByClass))
29
+ this.cacheByClass[name] = this.instance.forClass(clazz);
30
+ return this.cacheByClass[name];
31
+ }
32
+ static forMethod(clazz, method) {
33
+ const name = clazz.name;
34
+ if (!(name in this.cacheByClassMethod))
35
+ this.cacheByClassMethod[name] = {};
36
+ const methodName = typeof method === "string" ? method : method.name;
37
+ if (!(methodName in this.cacheByClassMethod[name]))
38
+ this.cacheByClassMethod[name][methodName] = this.instance.forMethod(clazz, method);
39
+ return this.cacheByClassMethod[name][methodName];
40
+ }
41
+ static get() {
42
+ if (!this.global)
43
+ this.global = this.instance.get();
44
+ return this.global;
45
+ }
46
+ }
47
+ exports.Logging = Logging;
48
+
49
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUF1QztBQUN2Qyx1Q0FBaUQ7QUFFakQsTUFBYSxPQUFPO2FBQ0gsV0FBTSxHQUFhLG9CQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2pDLGFBQVEsR0FDckIsOEJBQW9CLENBQUM7YUFHUixpQkFBWSxHQUEyQixFQUFFLENBQUM7YUFDMUMsdUJBQWtCLEdBQy9CLEVBQUUsQ0FBQztJQUdMLGdCQUF1QixDQUFDO0lBRXhCLE1BQU0sS0FBSyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLEtBQUssS0FBSyxDQUFDLEtBQWU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVTLE1BQU0sS0FBSyxRQUFRO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sS0FBSyxPQUFPLENBQUMsT0FBaUQ7UUFDbEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBb0M7UUFDbEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FDZCxLQUFvQyxFQUNwQyxNQUEwQztRQUUxQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUNqRSxLQUFLLEVBQ0wsTUFBTSxDQUNQLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7O0FBdkRILDBCQXdEQyIsImZpbGUiOiJsb2dnaW5nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCIuL0ZhY3RvcnlcIjtcbmltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nZ2VyRmFjdG9yeSB9IGZyb20gXCIuL2RlZmF1bHRcIjtcblxuZXhwb3J0IGNsYXNzIExvZ2dpbmcge1xuICBwcml2YXRlIHN0YXRpYyBfbGV2ZWw6IExvZ0xldmVsID0gTG9nTGV2ZWwuSW5mbztcbiAgcHJpdmF0ZSBzdGF0aWMgX2ZhY3Rvcnk6IHsgbmV3IChsZXZlbDogTG9nTGV2ZWwpOiBMb2dnZXJGYWN0b3J5IH0gPVxuICAgIERlZmF1bHRMb2dnZXJGYWN0b3J5O1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IExvZ2dlckZhY3Rvcnk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGVCeUNsYXNzOiBSZWNvcmQ8c3RyaW5nLCBMb2dnZXI+ID0ge307XG4gIHByaXZhdGUgc3RhdGljIGNhY2hlQnlDbGFzc01ldGhvZDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgTG9nZ2VyPj4gPVxuICAgIHt9O1xuICBwcml2YXRlIHN0YXRpYyBnbG9iYWw6IExvZ2dlcjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICBzdGF0aWMgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLl9sZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBzZXQgbGV2ZWwobGV2ZWw6IExvZ0xldmVsKSB7XG4gICAgdGhpcy5fbGV2ZWwgPSBsZXZlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IExvZ2dlckZhY3Rvcnkge1xuICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHRoaXMuX2luc3RhbmNlID0gbmV3IHRoaXMuX2ZhY3RvcnkodGhpcy5sZXZlbCk7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICB9XG5cbiAgc3RhdGljIHNldCBmYWN0b3J5KGZhY3Rvcnk6IHsgbmV3IChsZXZlbDogTG9nTGV2ZWwpOiBMb2dnZXJGYWN0b3J5IH0pIHtcbiAgICB0aGlzLl9mYWN0b3J5ID0gZmFjdG9yeTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDbGFzcyhjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0pIHtcbiAgICBjb25zdCBuYW1lID0gY2xhenoubmFtZTtcbiAgICBpZiAoIShuYW1lIGluIHRoaXMuY2FjaGVCeUNsYXNzKSlcbiAgICAgIHRoaXMuY2FjaGVCeUNsYXNzW25hbWVdID0gdGhpcy5pbnN0YW5jZS5mb3JDbGFzcyhjbGF6eik7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVCeUNsYXNzW25hbWVdO1xuICB9XG5cbiAgc3RhdGljIGZvck1ldGhvZChcbiAgICBjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0sXG4gICAgbWV0aG9kOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3RyaW5nXG4gICk6IExvZ2dlciB7XG4gICAgY29uc3QgbmFtZSA9IGNsYXp6Lm5hbWU7XG4gICAgaWYgKCEobmFtZSBpbiB0aGlzLmNhY2hlQnlDbGFzc01ldGhvZCkpIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdID0ge307XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHR5cGVvZiBtZXRob2QgPT09IFwic3RyaW5nXCIgPyBtZXRob2QgOiBtZXRob2QubmFtZTtcbiAgICBpZiAoIShtZXRob2ROYW1lIGluIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdKSlcbiAgICAgIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdW21ldGhvZE5hbWVdID0gdGhpcy5pbnN0YW5jZS5mb3JNZXRob2QoXG4gICAgICAgIGNsYXp6LFxuICAgICAgICBtZXRob2RcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVCeUNsYXNzTWV0aG9kW25hbWVdW21ldGhvZE5hbWVdO1xuICB9XG5cbiAgc3RhdGljIGdldCgpOiBMb2dnZXIge1xuICAgIGlmICghdGhpcy5nbG9iYWwpIHRoaXMuZ2xvYmFsID0gdGhpcy5pbnN0YW5jZS5nZXQoKTtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Logger } from "./interfaces";
2
+ import { LoggerFactory } from "./Factory";
3
+ import { LogLevel } from "./constants";
4
+ export declare class Logging {
5
+ private static _level;
6
+ private static _factory;
7
+ private static _instance;
8
+ private static cacheByClass;
9
+ private static cacheByClassMethod;
10
+ private static global;
11
+ private constructor();
12
+ static get level(): LogLevel;
13
+ static set level(level: LogLevel);
14
+ protected static get instance(): LoggerFactory;
15
+ static set factory(factory: {
16
+ new (level: LogLevel): LoggerFactory;
17
+ });
18
+ static forClass(clazz: {
19
+ new (...args: any[]): any;
20
+ }): Logger;
21
+ static forMethod(clazz: {
22
+ new (...args: any[]): any;
23
+ }, method: ((...args: any[]) => any) | string): Logger;
24
+ static get(): Logger;
25
+ }
package/lib/utils.cjs ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toLogLevel = toLogLevel;
4
+ const constants_1 = require("./constants.cjs");
5
+ function toLogLevel(level) {
6
+ if (level.toString() in constants_1.NumericLogLevels) {
7
+ return constants_1.NumericLogLevels[level.toString()];
8
+ }
9
+ throw new Error(`Invalid level: ${level.toString()}`);
10
+ }
11
+
12
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGdDQUtDO0FBUEQsMkNBQXlEO0FBRXpELFNBQWdCLFVBQVUsQ0FBQyxLQUFlO0lBQ3hDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLDRCQUFnQixFQUFFLENBQUM7UUFDekMsT0FBUSw0QkFBd0MsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwiZmlsZSI6InV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nTGV2ZWwsIE51bWVyaWNMb2dMZXZlbHMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvTG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogbnVtYmVyIHtcbiAgaWYgKGxldmVsLnRvU3RyaW5nKCkgaW4gTnVtZXJpY0xvZ0xldmVscykge1xuICAgIHJldHVybiAoTnVtZXJpY0xvZ0xldmVscyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtsZXZlbC50b1N0cmluZygpXTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGV2ZWw6ICR7bGV2ZWwudG9TdHJpbmcoKX1gKTtcbn1cbiJdfQ==
package/lib/utils.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { LogLevel } from "./constants";
2
+ export declare function toLogLevel(level: LogLevel): number;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WinstonLoggerFactory = void 0;
4
+ const Factory_1 = require("./Factory.cjs");
5
+ const winston = require("winston");
6
+ class WinstonLoggerFactory extends Factory_1.LoggerFactory {
7
+ constructor(level) {
8
+ super(level);
9
+ }
10
+ generate(lvl, clazz, method) {
11
+ const config = {
12
+ level: lvl,
13
+ format: winston.format.json(),
14
+ transports: [
15
+ new winston.transports.Console({
16
+ format: winston.format.combine(winston.format.colorize(), winston.format.splat(), winston.format.simple()),
17
+ }),
18
+ ],
19
+ };
20
+ let meta;
21
+ if (clazz || method) {
22
+ meta = {};
23
+ if (clazz)
24
+ meta["service"] = clazz;
25
+ if (method)
26
+ meta["method"] = method;
27
+ config.defaultMeta = meta;
28
+ }
29
+ return winston.createLogger(config);
30
+ }
31
+ forClass(clazz) {
32
+ return this.generate(this.level, clazz.name);
33
+ }
34
+ forMethod(clazz, method) {
35
+ return this.generate(this.level, clazz.name, typeof method === "string" ? method : method.name);
36
+ }
37
+ get() {
38
+ return this.generate(this.level);
39
+ }
40
+ }
41
+ exports.WinstonLoggerFactory = WinstonLoggerFactory;
42
+
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy93aW5zdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUEwQztBQUUxQyxtQ0FBbUM7QUFJbkMsTUFBYSxvQkFBcUIsU0FBUSx1QkFBYTtJQUNyRCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVTLFFBQVEsQ0FBQyxHQUFhLEVBQUUsS0FBYyxFQUFFLE1BQWU7UUFDL0QsTUFBTSxNQUFNLEdBQWtCO1lBQzVCLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFVBQVUsRUFBRTtnQkFDVixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQ3hCO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUM7UUFDRixJQUFJLElBQTZCLENBQUM7UUFDbEMsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNWLElBQUksS0FBSztnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25DLElBQUksTUFBTTtnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFvQztRQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFNBQVMsQ0FDUCxLQUFvQyxFQUNwQyxNQUEwQztRQUUxQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQ1YsS0FBSyxDQUFDLElBQUksRUFDVixPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbEQsQ0FBQztJQUNKLENBQUM7SUFDRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUE3Q0Qsb0RBNkNDIiwiZmlsZSI6IndpbnN0b24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSBcIi4vRmFjdG9yeVwiO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0ICogYXMgd2luc3RvbiBmcm9tIFwid2luc3RvblwiO1xuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IExvZ2dlck9wdGlvbnMgfSBmcm9tIFwid2luc3RvblwiO1xuXG5leHBvcnQgY2xhc3MgV2luc3RvbkxvZ2dlckZhY3RvcnkgZXh0ZW5kcyBMb2dnZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IobGV2ZWw6IExvZ0xldmVsKSB7XG4gICAgc3VwZXIobGV2ZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbmVyYXRlKGx2bDogTG9nTGV2ZWwsIGNsYXp6Pzogc3RyaW5nLCBtZXRob2Q/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb25maWc6IExvZ2dlck9wdGlvbnMgPSB7XG4gICAgICBsZXZlbDogbHZsLFxuICAgICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCksXG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICAgICAgICAgICAgd2luc3Rvbi5mb3JtYXQuY29sb3JpemUoKSxcbiAgICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnNwbGF0KCksXG4gICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9O1xuICAgIGxldCBtZXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoY2xhenogfHwgbWV0aG9kKSB7XG4gICAgICBtZXRhID0ge307XG4gICAgICBpZiAoY2xhenopIG1ldGFbXCJzZXJ2aWNlXCJdID0gY2xheno7XG4gICAgICBpZiAobWV0aG9kKSBtZXRhW1wibWV0aG9kXCJdID0gbWV0aG9kO1xuICAgICAgY29uZmlnLmRlZmF1bHRNZXRhID0gbWV0YTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbnN0b24uY3JlYXRlTG9nZ2VyKGNvbmZpZyk7XG4gIH1cblxuICBmb3JDbGFzcyhjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0pOiBMb2dnZXIge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlKHRoaXMubGV2ZWwsIGNsYXp6Lm5hbWUpO1xuICB9XG4gIGZvck1ldGhvZChcbiAgICBjbGF6ejogeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH0sXG4gICAgbWV0aG9kOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3RyaW5nXG4gICk6IExvZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGUoXG4gICAgICB0aGlzLmxldmVsLFxuICAgICAgY2xhenoubmFtZSxcbiAgICAgIHR5cGVvZiBtZXRob2QgPT09IFwic3RyaW5nXCIgPyBtZXRob2QgOiBtZXRob2QubmFtZVxuICAgICk7XG4gIH1cbiAgZ2V0KCk6IExvZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGUodGhpcy5sZXZlbCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { LoggerFactory } from "./Factory";
2
+ import { Logger } from "./interfaces";
3
+ import * as winston from "winston";
4
+ import { LogLevel } from "./constants";
5
+ export declare class WinstonLoggerFactory extends LoggerFactory {
6
+ constructor(level: LogLevel);
7
+ protected generate(lvl: LogLevel, clazz?: string, method?: string): winston.Logger;
8
+ forClass(clazz: {
9
+ new (...args: any[]): any;
10
+ }): Logger;
11
+ forMethod(clazz: {
12
+ new (...args: any[]): any;
13
+ }, method: ((...args: any[]) => any) | string): Logger;
14
+ get(): Logger;
15
+ }