@spinajs/log-common 2.0.180 → 2.0.181

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/lib/mjs/index.js CHANGED
@@ -1,153 +1,153 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- 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;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Autoinject, Container, DI, SyncService } from "@spinajs/di";
11
- import _ from "lodash";
12
- import * as util from "util";
13
- export var LogLevel;
14
- (function (LogLevel) {
15
- LogLevel[LogLevel["Security"] = 999] = "Security";
16
- LogLevel[LogLevel["Fatal"] = 6] = "Fatal";
17
- LogLevel[LogLevel["Error"] = 5] = "Error";
18
- LogLevel[LogLevel["Warn"] = 4] = "Warn";
19
- LogLevel[LogLevel["Success"] = 3] = "Success";
20
- LogLevel[LogLevel["Info"] = 2] = "Info";
21
- LogLevel[LogLevel["Debug"] = 1] = "Debug";
22
- LogLevel[LogLevel["Trace"] = 0] = "Trace";
23
- })(LogLevel = LogLevel || (LogLevel = {}));
24
- export const StrToLogLevel = {
25
- trace: LogLevel.Trace,
26
- debug: LogLevel.Debug,
27
- info: LogLevel.Info,
28
- success: LogLevel.Success,
29
- warn: LogLevel.Warn,
30
- error: LogLevel.Error,
31
- fatal: LogLevel.Fatal,
32
- security: LogLevel.Security,
33
- };
34
- export const LogLevelStrings = {
35
- [LogLevel.Debug]: "debug",
36
- [LogLevel.Error]: "error",
37
- [LogLevel.Fatal]: "fatal",
38
- [LogLevel.Info]: "info",
39
- [LogLevel.Security]: "security",
40
- [LogLevel.Success]: "success",
41
- [LogLevel.Trace]: "trace",
42
- [LogLevel.Warn]: "warn",
43
- };
44
- export class LogTarget extends SyncService {
45
- constructor(options) {
46
- super();
47
- this.HasError = false;
48
- this.Error = null;
49
- if (options) {
50
- this.Options = _.merge(_.merge(this.Options, {
51
- enabled: true,
52
- layout: "${datetime} ${level} ${message} ${error} (${logger})",
53
- }), options);
54
- }
55
- }
56
- }
57
- export function createLogMessageObject(err, message, level, logger, variables, ...args) {
58
- const sMsg = err instanceof Error || !err ? message : err;
59
- const tMsg = args.length !== 0 ? util.format(sMsg, ...args) : sMsg;
60
- const lName = logger ?? message;
61
- return {
62
- Level: level,
63
- Variables: {
64
- error: err instanceof Error ? err : undefined,
65
- level: LogLevelStrings[`${level}`].toUpperCase(),
66
- logger: lName,
67
- message: tMsg,
68
- ...variables,
69
- },
70
- };
71
- }
72
- export class Log extends SyncService {
73
- constructor() {
74
- super(...arguments);
75
- this.Timers = new Map();
76
- this.Variables = {};
77
- }
78
- static clearLoggers() {
79
- return Promise.all([...Log.Loggers.values()].map((l) => l.dispose()))
80
- .then(() => {
81
- Log.Loggers.clear();
82
- })
83
- .then(() => {
84
- return [...Log.InternalLoggers.values()].map((l) => l.dispose());
85
- });
86
- }
87
- addVariable(name, value) {
88
- this.Variables[`${name}`] = value;
89
- }
90
- timeStart(name) {
91
- if (this.Timers.has(name)) {
92
- return;
93
- }
94
- this.Timers.set(name, new Date());
95
- }
96
- timeEnd(name) {
97
- if (this.Timers.has(name)) {
98
- const cTime = new Date();
99
- const diff = cTime.getTime() - this.Timers.get(name).getTime();
100
- this.Timers.delete(name);
101
- return diff;
102
- }
103
- return 0;
104
- }
105
- child(name, variables) {
106
- return DI.resolve(Log, [
107
- `${this.Name}.${name}`,
108
- {
109
- ...this.Variables,
110
- ...variables,
111
- },
112
- this,
113
- ]);
114
- }
115
- }
116
- Log.Loggers = new Map();
117
- Log.InternalLoggers = new Map();
118
- Log.AttachedToExitEvents = false;
119
- __decorate([
120
- Autoinject(),
121
- __metadata("design:type", Container)
122
- ], Log.prototype, "Container", void 0);
123
- /**
124
- * Creates ( if not exists ) new logger instance with given name and optional variables
125
- * @param name - name of logger
126
- * @param variables - optional log variables
127
- */
128
- export function Logger(name, variables) {
129
- return (target, key) => {
130
- let logger;
131
- // property getter
132
- const getter = () => {
133
- if (!logger) {
134
- const allLoggers = DI.get(Array.ofType(Log));
135
- const found = allLoggers.find((l) => l.Name === name);
136
- if (found) {
137
- logger = found;
138
- }
139
- else {
140
- logger = DI.resolve(Log, [name, variables]);
141
- }
142
- }
143
- return logger;
144
- };
145
- // Create new property with getter and setter
146
- Object.defineProperty(target, key, {
147
- get: getter,
148
- enumerable: false,
149
- configurable: false,
150
- });
151
- };
152
- }
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Autoinject, Container, DI, SyncService } from "@spinajs/di";
11
+ import _ from "lodash";
12
+ import * as util from "util";
13
+ export var LogLevel;
14
+ (function (LogLevel) {
15
+ LogLevel[LogLevel["Security"] = 999] = "Security";
16
+ LogLevel[LogLevel["Fatal"] = 6] = "Fatal";
17
+ LogLevel[LogLevel["Error"] = 5] = "Error";
18
+ LogLevel[LogLevel["Warn"] = 4] = "Warn";
19
+ LogLevel[LogLevel["Success"] = 3] = "Success";
20
+ LogLevel[LogLevel["Info"] = 2] = "Info";
21
+ LogLevel[LogLevel["Debug"] = 1] = "Debug";
22
+ LogLevel[LogLevel["Trace"] = 0] = "Trace";
23
+ })(LogLevel || (LogLevel = {}));
24
+ export const StrToLogLevel = {
25
+ trace: LogLevel.Trace,
26
+ debug: LogLevel.Debug,
27
+ info: LogLevel.Info,
28
+ success: LogLevel.Success,
29
+ warn: LogLevel.Warn,
30
+ error: LogLevel.Error,
31
+ fatal: LogLevel.Fatal,
32
+ security: LogLevel.Security,
33
+ };
34
+ export const LogLevelStrings = {
35
+ [LogLevel.Debug]: "debug",
36
+ [LogLevel.Error]: "error",
37
+ [LogLevel.Fatal]: "fatal",
38
+ [LogLevel.Info]: "info",
39
+ [LogLevel.Security]: "security",
40
+ [LogLevel.Success]: "success",
41
+ [LogLevel.Trace]: "trace",
42
+ [LogLevel.Warn]: "warn",
43
+ };
44
+ export class LogTarget extends SyncService {
45
+ constructor(options) {
46
+ super();
47
+ this.HasError = false;
48
+ this.Error = null;
49
+ if (options) {
50
+ this.Options = _.merge(_.merge(this.Options, {
51
+ enabled: true,
52
+ layout: "${datetime} ${level} ${message} ${error} (${logger})",
53
+ }), options);
54
+ }
55
+ }
56
+ }
57
+ export function createLogMessageObject(err, message, level, logger, variables, ...args) {
58
+ const sMsg = err instanceof Error || !err ? message : err;
59
+ const tMsg = args.length !== 0 ? util.format(sMsg, ...args) : sMsg;
60
+ const lName = logger ?? message;
61
+ return {
62
+ Level: level,
63
+ Variables: {
64
+ error: err instanceof Error ? err : undefined,
65
+ level: LogLevelStrings[`${level}`].toUpperCase(),
66
+ logger: lName,
67
+ message: tMsg,
68
+ ...variables,
69
+ },
70
+ };
71
+ }
72
+ export class Log extends SyncService {
73
+ constructor() {
74
+ super(...arguments);
75
+ this.Timers = new Map();
76
+ this.Variables = {};
77
+ }
78
+ static clearLoggers() {
79
+ return Promise.all([...Log.Loggers.values()].map((l) => l.dispose()))
80
+ .then(() => {
81
+ Log.Loggers.clear();
82
+ })
83
+ .then(() => {
84
+ return [...Log.InternalLoggers.values()].map((l) => l.dispose());
85
+ });
86
+ }
87
+ addVariable(name, value) {
88
+ this.Variables[`${name}`] = value;
89
+ }
90
+ timeStart(name) {
91
+ if (this.Timers.has(name)) {
92
+ return;
93
+ }
94
+ this.Timers.set(name, new Date());
95
+ }
96
+ timeEnd(name) {
97
+ if (this.Timers.has(name)) {
98
+ const cTime = new Date();
99
+ const diff = cTime.getTime() - this.Timers.get(name).getTime();
100
+ this.Timers.delete(name);
101
+ return diff;
102
+ }
103
+ return 0;
104
+ }
105
+ child(name, variables) {
106
+ return DI.resolve(Log, [
107
+ `${this.Name}.${name}`,
108
+ {
109
+ ...this.Variables,
110
+ ...variables,
111
+ },
112
+ this,
113
+ ]);
114
+ }
115
+ }
116
+ Log.Loggers = new Map();
117
+ Log.InternalLoggers = new Map();
118
+ Log.AttachedToExitEvents = false;
119
+ __decorate([
120
+ Autoinject(),
121
+ __metadata("design:type", Container)
122
+ ], Log.prototype, "Container", void 0);
123
+ /**
124
+ * Creates ( if not exists ) new logger instance with given name and optional variables
125
+ * @param name - name of logger
126
+ * @param variables - optional log variables
127
+ */
128
+ export function Logger(name, variables) {
129
+ return (target, key) => {
130
+ let logger;
131
+ // property getter
132
+ const getter = () => {
133
+ if (!logger) {
134
+ const allLoggers = DI.get(Array.ofType(Log));
135
+ const found = allLoggers.find((l) => l.Name === name);
136
+ if (found) {
137
+ logger = found;
138
+ }
139
+ else {
140
+ logger = DI.resolve(Log, [name, variables]);
141
+ }
142
+ }
143
+ return logger;
144
+ };
145
+ // Create new property with getter and setter
146
+ Object.defineProperty(target, key, {
147
+ get: getter,
148
+ enumerable: false,
149
+ configurable: false,
150
+ });
151
+ };
152
+ }
153
153
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}