@globalart/nestjs-logger 1.0.5 → 1.0.7
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/constants/index.d.ts +7 -4
- package/dist/constants/index.js +9 -5
- package/dist/contracts/index.d.ts +0 -1
- package/dist/core/logger.di-tokens.d.ts +3 -0
- package/dist/core/logger.di-tokens.js +27 -0
- package/dist/core/logger.module.d.ts +1 -0
- package/dist/core/logger.module.js +32 -6
- package/dist/decorators/index.d.ts +4 -3
- package/dist/factories/dynamic-context-logger.factory.d.ts +14 -0
- package/dist/factories/dynamic-context-logger.factory.js +52 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -3
- package/dist/types/index.d.ts +41 -13
- package/dist/types/index.js +1 -0
- package/dist/utils/context-resolver.js +0 -2
- package/package.json +1 -1
- package/dist/interceptors/index.d.ts +0 -1
- package/dist/interceptors/index.js +0 -5
- package/dist/interfaces/index.d.ts +0 -59
- package/dist/interfaces/index.js +0 -2
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
export declare const LOGGER_CONFIG_TOKEN
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
1
|
+
export declare const LOGGER_CONFIG_TOKEN: unique symbol;
|
|
2
|
+
export declare const LOGGER_SERVICE_TOKEN: unique symbol;
|
|
3
|
+
export declare const LOGGER_CONTEXT_SERVICE_TOKEN: (context: string) => symbol;
|
|
4
|
+
export declare const DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN: unique symbol;
|
|
5
|
+
export declare const LOGGER_CONTEXT_METADATA: unique symbol;
|
|
6
|
+
export declare const LOGGER_METADATA_METADATA: unique symbol;
|
|
7
|
+
export declare const LOGGER_EXCLUDE_METADATA: unique symbol;
|
|
5
8
|
export declare const DEFAULT_SENSITIVE_FIELDS: readonly ["password", "pass", "token", "accessToken", "refreshToken", "secret", "key", "apiKey", "authorization", "auth", "credential", "credentials"];
|
|
6
9
|
export declare const COLORS: {
|
|
7
10
|
readonly reset: "\u001B[0m";
|
package/dist/constants/index.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_LOGGER_CONFIG = exports.COLORS = exports.DEFAULT_SENSITIVE_FIELDS = exports.LOGGER_EXCLUDE_METADATA = exports.LOGGER_METADATA_METADATA = exports.LOGGER_CONTEXT_METADATA = exports.LOGGER_CONFIG_TOKEN = void 0;
|
|
4
|
-
exports.LOGGER_CONFIG_TOKEN = "LOGGER_CONFIG";
|
|
5
|
-
exports.
|
|
6
|
-
|
|
7
|
-
exports.
|
|
3
|
+
exports.DEFAULT_LOGGER_CONFIG = exports.COLORS = exports.DEFAULT_SENSITIVE_FIELDS = exports.LOGGER_EXCLUDE_METADATA = exports.LOGGER_METADATA_METADATA = exports.LOGGER_CONTEXT_METADATA = exports.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN = exports.LOGGER_CONTEXT_SERVICE_TOKEN = exports.LOGGER_SERVICE_TOKEN = exports.LOGGER_CONFIG_TOKEN = void 0;
|
|
4
|
+
exports.LOGGER_CONFIG_TOKEN = Symbol("LOGGER_CONFIG");
|
|
5
|
+
exports.LOGGER_SERVICE_TOKEN = Symbol("LOGGER_SERVICE");
|
|
6
|
+
const LOGGER_CONTEXT_SERVICE_TOKEN = (context) => Symbol(`LOGGER_SERVICE_${context}`);
|
|
7
|
+
exports.LOGGER_CONTEXT_SERVICE_TOKEN = LOGGER_CONTEXT_SERVICE_TOKEN;
|
|
8
|
+
exports.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN = Symbol("DYNAMIC_CONTEXT_LOGGER_FACTORY");
|
|
9
|
+
exports.LOGGER_CONTEXT_METADATA = Symbol("LOGGER_CONTEXT");
|
|
10
|
+
exports.LOGGER_METADATA_METADATA = Symbol("LOGGER_METADATA");
|
|
11
|
+
exports.LOGGER_EXCLUDE_METADATA = Symbol("LOGGER_EXCLUDE");
|
|
8
12
|
exports.DEFAULT_SENSITIVE_FIELDS = [
|
|
9
13
|
"password",
|
|
10
14
|
"pass",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAllContextTokens = exports.getContextLoggerToken = exports.InjectLogger = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const contextLoggerCache = new Map();
|
|
7
|
+
const InjectLogger = (context) => {
|
|
8
|
+
if (context) {
|
|
9
|
+
if (!contextLoggerCache.has(context)) {
|
|
10
|
+
contextLoggerCache.set(context, Symbol(`LOGGER_CONTEXT_${context}`));
|
|
11
|
+
}
|
|
12
|
+
return (0, common_1.Inject)(contextLoggerCache.get(context));
|
|
13
|
+
}
|
|
14
|
+
return (0, common_1.Inject)(constants_1.LOGGER_SERVICE_TOKEN);
|
|
15
|
+
};
|
|
16
|
+
exports.InjectLogger = InjectLogger;
|
|
17
|
+
const getContextLoggerToken = (context) => {
|
|
18
|
+
if (!contextLoggerCache.has(context)) {
|
|
19
|
+
contextLoggerCache.set(context, Symbol(`LOGGER_CONTEXT_${context}`));
|
|
20
|
+
}
|
|
21
|
+
return contextLoggerCache.get(context);
|
|
22
|
+
};
|
|
23
|
+
exports.getContextLoggerToken = getContextLoggerToken;
|
|
24
|
+
const getAllContextTokens = () => {
|
|
25
|
+
return Array.from(contextLoggerCache.keys());
|
|
26
|
+
};
|
|
27
|
+
exports.getAllContextTokens = getAllContextTokens;
|
|
@@ -13,19 +13,27 @@ const core_1 = require("@nestjs/core");
|
|
|
13
13
|
const logger_service_1 = require("./logger.service");
|
|
14
14
|
const http_logger_interceptor_1 = require("./http-logger.interceptor");
|
|
15
15
|
const formatter_factory_1 = require("../factories/formatter.factory");
|
|
16
|
+
const dynamic_context_logger_factory_1 = require("../factories/dynamic-context-logger.factory");
|
|
16
17
|
const console_writer_1 = require("../writers/console-writer");
|
|
17
18
|
const context_resolver_1 = require("../utils/context-resolver");
|
|
18
19
|
const data_sanitizer_1 = require("../utils/data-sanitizer");
|
|
19
20
|
const request_id_generator_1 = require("../utils/request-id-generator");
|
|
20
21
|
const constants_1 = require("../constants");
|
|
22
|
+
const logger_di_tokens_1 = require("./logger.di-tokens");
|
|
21
23
|
let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
22
24
|
static forRoot(options = {}) {
|
|
23
25
|
const config = this.createConfiguration(options);
|
|
24
26
|
const providers = this.createProviders(config);
|
|
27
|
+
const contextProviders = this.createDynamicContextProviders();
|
|
25
28
|
return {
|
|
26
29
|
module: LoggerModule_1,
|
|
27
|
-
providers,
|
|
28
|
-
exports: [
|
|
30
|
+
providers: [...providers, ...contextProviders],
|
|
31
|
+
exports: [
|
|
32
|
+
constants_1.LOGGER_SERVICE_TOKEN,
|
|
33
|
+
http_logger_interceptor_1.HttpLoggerInterceptor,
|
|
34
|
+
constants_1.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN,
|
|
35
|
+
...contextProviders.map((p) => p.provide),
|
|
36
|
+
],
|
|
29
37
|
global: true,
|
|
30
38
|
};
|
|
31
39
|
}
|
|
@@ -39,10 +47,16 @@ let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
|
39
47
|
inject: options.inject || [],
|
|
40
48
|
};
|
|
41
49
|
const providers = [configProvider, ...this.createCoreProviders()];
|
|
50
|
+
const contextProviders = this.createDynamicContextProviders();
|
|
42
51
|
return {
|
|
43
52
|
module: LoggerModule_1,
|
|
44
|
-
providers,
|
|
45
|
-
exports: [
|
|
53
|
+
providers: [...providers, ...contextProviders],
|
|
54
|
+
exports: [
|
|
55
|
+
constants_1.LOGGER_SERVICE_TOKEN,
|
|
56
|
+
http_logger_interceptor_1.HttpLoggerInterceptor,
|
|
57
|
+
constants_1.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN,
|
|
58
|
+
...contextProviders.map((p) => p.provide),
|
|
59
|
+
],
|
|
46
60
|
global: true,
|
|
47
61
|
};
|
|
48
62
|
}
|
|
@@ -75,7 +89,11 @@ let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
|
75
89
|
inject: [constants_1.LOGGER_CONFIG_TOKEN],
|
|
76
90
|
},
|
|
77
91
|
{
|
|
78
|
-
provide:
|
|
92
|
+
provide: constants_1.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN,
|
|
93
|
+
useClass: dynamic_context_logger_factory_1.DynamicContextLoggerFactory,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
provide: constants_1.LOGGER_SERVICE_TOKEN,
|
|
79
97
|
useFactory: (config, formatterFactory, writer, contextResolver) => {
|
|
80
98
|
const formatter = formatterFactory.create(config.format, {
|
|
81
99
|
colors: config.colors,
|
|
@@ -98,7 +116,7 @@ let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
|
98
116
|
return new http_logger_interceptor_1.HttpLoggerInterceptor(logger, dataSanitizer, requestIdGenerator, config, reflector);
|
|
99
117
|
},
|
|
100
118
|
inject: [
|
|
101
|
-
|
|
119
|
+
constants_1.LOGGER_SERVICE_TOKEN,
|
|
102
120
|
data_sanitizer_1.DataSanitizer,
|
|
103
121
|
request_id_generator_1.RequestIdGenerator,
|
|
104
122
|
constants_1.LOGGER_CONFIG_TOKEN,
|
|
@@ -106,6 +124,14 @@ let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
|
106
124
|
},
|
|
107
125
|
];
|
|
108
126
|
}
|
|
127
|
+
static createDynamicContextProviders() {
|
|
128
|
+
const contextNames = (0, logger_di_tokens_1.getAllContextTokens)();
|
|
129
|
+
return contextNames.map((context) => ({
|
|
130
|
+
provide: (0, logger_di_tokens_1.getContextLoggerToken)(context),
|
|
131
|
+
useFactory: (factory) => factory.createLogger(context),
|
|
132
|
+
inject: [constants_1.DYNAMIC_CONTEXT_LOGGER_FACTORY_TOKEN],
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
109
135
|
};
|
|
110
136
|
exports.LoggerModule = LoggerModule;
|
|
111
137
|
exports.LoggerModule = LoggerModule = LoggerModule_1 = __decorate([
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { LOGGER_CONTEXT_METADATA, LOGGER_METADATA_METADATA, LOGGER_EXCLUDE_METADATA } from "../constants";
|
|
1
2
|
/**
|
|
2
3
|
* Decorator to set logging context for a class or method
|
|
3
4
|
*/
|
|
4
|
-
export declare const LogContext: (context: string) => import("@nestjs/common").CustomDecorator<
|
|
5
|
+
export declare const LogContext: (context: string) => import("@nestjs/common").CustomDecorator<typeof LOGGER_CONTEXT_METADATA>;
|
|
5
6
|
/**
|
|
6
7
|
* Decorator to add metadata to logs
|
|
7
8
|
*/
|
|
8
|
-
export declare const LogMetadata: (metadata: Record<string, unknown>) => import("@nestjs/common").CustomDecorator<
|
|
9
|
+
export declare const LogMetadata: (metadata: Record<string, unknown>) => import("@nestjs/common").CustomDecorator<typeof LOGGER_METADATA_METADATA>;
|
|
9
10
|
/**
|
|
10
11
|
* Decorator to exclude logging for a controller or method
|
|
11
12
|
*/
|
|
12
|
-
export declare const ExcludeLogging: () => import("@nestjs/common").CustomDecorator<
|
|
13
|
+
export declare const ExcludeLogging: () => import("@nestjs/common").CustomDecorator<typeof LOGGER_EXCLUDE_METADATA>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LoggerService } from "../core/logger.service";
|
|
2
|
+
import { FormatterFactory } from "./formatter.factory";
|
|
3
|
+
import { ConsoleWriter } from "../writers/console-writer";
|
|
4
|
+
import { ContextResolver } from "../utils/context-resolver";
|
|
5
|
+
import { LoggerConfiguration } from "../types";
|
|
6
|
+
export declare class DynamicContextLoggerFactory {
|
|
7
|
+
private readonly config;
|
|
8
|
+
private readonly formatterFactory;
|
|
9
|
+
private readonly writer;
|
|
10
|
+
private readonly contextResolver;
|
|
11
|
+
private readonly loggerCache;
|
|
12
|
+
constructor(config: LoggerConfiguration, formatterFactory: FormatterFactory, writer: ConsoleWriter, contextResolver: ContextResolver);
|
|
13
|
+
createLogger(context: string): LoggerService;
|
|
14
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DynamicContextLoggerFactory = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const logger_service_1 = require("../core/logger.service");
|
|
18
|
+
const formatter_factory_1 = require("./formatter.factory");
|
|
19
|
+
const console_writer_1 = require("../writers/console-writer");
|
|
20
|
+
const context_resolver_1 = require("../utils/context-resolver");
|
|
21
|
+
const constants_1 = require("../constants");
|
|
22
|
+
let DynamicContextLoggerFactory = class DynamicContextLoggerFactory {
|
|
23
|
+
constructor(config, formatterFactory, writer, contextResolver) {
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.formatterFactory = formatterFactory;
|
|
26
|
+
this.writer = writer;
|
|
27
|
+
this.contextResolver = contextResolver;
|
|
28
|
+
this.loggerCache = new Map();
|
|
29
|
+
}
|
|
30
|
+
createLogger(context) {
|
|
31
|
+
if (this.loggerCache.has(context)) {
|
|
32
|
+
return this.loggerCache.get(context);
|
|
33
|
+
}
|
|
34
|
+
const formatter = this.formatterFactory.create(this.config.format, {
|
|
35
|
+
colors: this.config.colors,
|
|
36
|
+
timestamp: this.config.timestamp,
|
|
37
|
+
context: this.config.context,
|
|
38
|
+
});
|
|
39
|
+
const logger = new logger_service_1.LoggerService(this.config, formatter, this.writer, this.contextResolver);
|
|
40
|
+
logger.setContext(context);
|
|
41
|
+
this.loggerCache.set(context, logger);
|
|
42
|
+
return logger;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.DynamicContextLoggerFactory = DynamicContextLoggerFactory;
|
|
46
|
+
exports.DynamicContextLoggerFactory = DynamicContextLoggerFactory = __decorate([
|
|
47
|
+
(0, common_1.Injectable)(),
|
|
48
|
+
__param(0, (0, common_1.Inject)(constants_1.LOGGER_CONFIG_TOKEN)),
|
|
49
|
+
__metadata("design:paramtypes", [Object, formatter_factory_1.FormatterFactory,
|
|
50
|
+
console_writer_1.ConsoleWriter,
|
|
51
|
+
context_resolver_1.ContextResolver])
|
|
52
|
+
], DynamicContextLoggerFactory);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { LoggerModule, LoggerModuleOptions, LoggerModuleAsyncOptions, } from "./core/logger.module";
|
|
2
|
+
export { InjectLogger } from "./core/logger.di-tokens";
|
|
2
3
|
export { LoggerService } from "./core/logger.service";
|
|
3
4
|
export { HttpLoggerInterceptor } from "./core/http-logger.interceptor";
|
|
5
|
+
export { DynamicContextLoggerFactory } from "./factories/dynamic-context-logger.factory";
|
|
4
6
|
export { LogContext, LogMetadata, ExcludeLogging } from "./decorators";
|
|
5
7
|
export * from "./types";
|
|
6
8
|
export * from "./contracts";
|
package/dist/index.js
CHANGED
|
@@ -14,19 +14,24 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ExcludeLogging = exports.LogMetadata = exports.LogContext = exports.HttpLoggerInterceptor = exports.LoggerService = exports.LoggerModule = void 0;
|
|
17
|
+
exports.ExcludeLogging = exports.LogMetadata = exports.LogContext = exports.DynamicContextLoggerFactory = exports.HttpLoggerInterceptor = exports.LoggerService = exports.InjectLogger = exports.LoggerModule = void 0;
|
|
18
18
|
// Core
|
|
19
19
|
var logger_module_1 = require("./core/logger.module");
|
|
20
20
|
Object.defineProperty(exports, "LoggerModule", { enumerable: true, get: function () { return logger_module_1.LoggerModule; } });
|
|
21
|
+
var logger_di_tokens_1 = require("./core/logger.di-tokens");
|
|
22
|
+
Object.defineProperty(exports, "InjectLogger", { enumerable: true, get: function () { return logger_di_tokens_1.InjectLogger; } });
|
|
21
23
|
var logger_service_1 = require("./core/logger.service");
|
|
22
24
|
Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return logger_service_1.LoggerService; } });
|
|
23
25
|
var http_logger_interceptor_1 = require("./core/http-logger.interceptor");
|
|
24
26
|
Object.defineProperty(exports, "HttpLoggerInterceptor", { enumerable: true, get: function () { return http_logger_interceptor_1.HttpLoggerInterceptor; } });
|
|
27
|
+
// Factories
|
|
28
|
+
var dynamic_context_logger_factory_1 = require("./factories/dynamic-context-logger.factory");
|
|
29
|
+
Object.defineProperty(exports, "DynamicContextLoggerFactory", { enumerable: true, get: function () { return dynamic_context_logger_factory_1.DynamicContextLoggerFactory; } });
|
|
30
|
+
// Decorators
|
|
25
31
|
var decorators_1 = require("./decorators");
|
|
26
32
|
Object.defineProperty(exports, "LogContext", { enumerable: true, get: function () { return decorators_1.LogContext; } });
|
|
27
33
|
Object.defineProperty(exports, "LogMetadata", { enumerable: true, get: function () { return decorators_1.LogMetadata; } });
|
|
28
34
|
Object.defineProperty(exports, "ExcludeLogging", { enumerable: true, get: function () { return decorators_1.ExcludeLogging; } });
|
|
29
|
-
// Types
|
|
35
|
+
// Types and Contracts
|
|
30
36
|
__exportStar(require("./types"), exports);
|
|
31
|
-
// Contracts
|
|
32
37
|
__exportStar(require("./contracts"), exports);
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,15 +11,11 @@ export interface LogEntry {
|
|
|
11
11
|
readonly metadata?: Record<string, unknown>;
|
|
12
12
|
readonly trace?: string;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
readonly req: HttpRequest;
|
|
20
|
-
readonly res: HttpResponse;
|
|
21
|
-
readonly responseTime: number;
|
|
22
|
-
readonly msg: string;
|
|
14
|
+
export interface LogOptions {
|
|
15
|
+
message: string;
|
|
16
|
+
context?: string;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
trace?: string;
|
|
23
19
|
}
|
|
24
20
|
export interface HttpRequest {
|
|
25
21
|
readonly id: string;
|
|
@@ -36,6 +32,16 @@ export interface HttpResponse {
|
|
|
36
32
|
readonly statusCode: number;
|
|
37
33
|
readonly headers: Record<string, string>;
|
|
38
34
|
}
|
|
35
|
+
export interface HttpRequestLogEntry {
|
|
36
|
+
readonly level: number;
|
|
37
|
+
readonly time: number;
|
|
38
|
+
readonly pid: number;
|
|
39
|
+
readonly hostname: string;
|
|
40
|
+
readonly req: HttpRequest;
|
|
41
|
+
readonly res: HttpResponse;
|
|
42
|
+
readonly responseTime: number;
|
|
43
|
+
readonly msg: string;
|
|
44
|
+
}
|
|
39
45
|
export interface ExcludeOption {
|
|
40
46
|
method: RequestMethod;
|
|
41
47
|
path: string;
|
|
@@ -54,9 +60,31 @@ export interface FormatterOptions {
|
|
|
54
60
|
readonly timestamp: boolean;
|
|
55
61
|
readonly context?: string;
|
|
56
62
|
}
|
|
57
|
-
export interface
|
|
58
|
-
|
|
63
|
+
export interface LoggerOptions {
|
|
64
|
+
level?: LogLevel;
|
|
65
|
+
timestamp?: boolean;
|
|
66
|
+
colors?: boolean;
|
|
59
67
|
context?: string;
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
format?: LogFormat;
|
|
69
|
+
transports?: LoggerTransport[];
|
|
70
|
+
pino?: PinoOptions;
|
|
71
|
+
}
|
|
72
|
+
export interface PinoOptions {
|
|
73
|
+
level?: string;
|
|
74
|
+
timestamp?: boolean;
|
|
75
|
+
base?: boolean;
|
|
76
|
+
name?: string;
|
|
77
|
+
enabled?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface LoggerTransport {
|
|
80
|
+
name: string;
|
|
81
|
+
level?: string;
|
|
82
|
+
format?: unknown;
|
|
83
|
+
filename?: string;
|
|
84
|
+
dirname?: string;
|
|
85
|
+
maxsize?: number;
|
|
86
|
+
maxFiles?: number;
|
|
87
|
+
}
|
|
88
|
+
export interface LoggerMetadata {
|
|
89
|
+
[key: string]: unknown;
|
|
62
90
|
}
|
package/dist/types/index.js
CHANGED
|
@@ -40,7 +40,6 @@ let ContextResolver = class ContextResolver {
|
|
|
40
40
|
return skipPatterns.some((pattern) => line.includes(pattern));
|
|
41
41
|
}
|
|
42
42
|
extractClassName(line) {
|
|
43
|
-
// Пытаемся найти имя класса в различных форматах
|
|
44
43
|
const patterns = [
|
|
45
44
|
/at\s+(\w+)\./, // at ClassName.method
|
|
46
45
|
/at\s+.*\.(\w+)\s+\(/, // at path.ClassName (
|
|
@@ -55,7 +54,6 @@ let ContextResolver = class ContextResolver {
|
|
|
55
54
|
return null;
|
|
56
55
|
}
|
|
57
56
|
isValidClassName(name) {
|
|
58
|
-
// Проверяем, что это валидное имя класса (начинается с заглавной буквы)
|
|
59
57
|
return (/^[A-Z][a-zA-Z0-9]*$/.test(name) &&
|
|
60
58
|
name !== "Object" &&
|
|
61
59
|
name !== "Function" &&
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { HttpLoggerInterceptor } from "../core/http-logger.interceptor";
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HttpLoggerInterceptor = void 0;
|
|
4
|
-
var http_logger_interceptor_1 = require("../core/http-logger.interceptor");
|
|
5
|
-
Object.defineProperty(exports, "HttpLoggerInterceptor", { enumerable: true, get: function () { return http_logger_interceptor_1.HttpLoggerInterceptor; } });
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export interface LoggerOptions {
|
|
2
|
-
level?: "error" | "warn" | "log" | "debug" | "verbose";
|
|
3
|
-
timestamp?: boolean;
|
|
4
|
-
colors?: boolean;
|
|
5
|
-
context?: string;
|
|
6
|
-
format?: "json" | "text" | "pino";
|
|
7
|
-
transports?: LoggerTransport[];
|
|
8
|
-
pino?: PinoOptions;
|
|
9
|
-
}
|
|
10
|
-
export interface PinoOptions {
|
|
11
|
-
level?: string;
|
|
12
|
-
timestamp?: boolean;
|
|
13
|
-
base?: boolean;
|
|
14
|
-
name?: string;
|
|
15
|
-
enabled?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface LoggerTransport {
|
|
18
|
-
name: string;
|
|
19
|
-
level?: string;
|
|
20
|
-
format?: any;
|
|
21
|
-
filename?: string;
|
|
22
|
-
dirname?: string;
|
|
23
|
-
maxsize?: number;
|
|
24
|
-
maxFiles?: number;
|
|
25
|
-
}
|
|
26
|
-
export interface LogContext {
|
|
27
|
-
timestamp?: string;
|
|
28
|
-
level: string;
|
|
29
|
-
message: string;
|
|
30
|
-
context?: string;
|
|
31
|
-
trace?: string;
|
|
32
|
-
metadata?: Record<string, any>;
|
|
33
|
-
}
|
|
34
|
-
export interface LoggerMetadata {
|
|
35
|
-
[key: string]: any;
|
|
36
|
-
}
|
|
37
|
-
export interface RequestLogData {
|
|
38
|
-
req: {
|
|
39
|
-
id: number;
|
|
40
|
-
method: string;
|
|
41
|
-
url: string;
|
|
42
|
-
query: Record<string, any>;
|
|
43
|
-
params: Record<string, any>;
|
|
44
|
-
headers: Record<string, any>;
|
|
45
|
-
remoteAddress: string;
|
|
46
|
-
remotePort?: number;
|
|
47
|
-
body?: any;
|
|
48
|
-
};
|
|
49
|
-
res: {
|
|
50
|
-
statusCode: number;
|
|
51
|
-
headers: Record<string, any>;
|
|
52
|
-
};
|
|
53
|
-
responseTime: number;
|
|
54
|
-
msg: string;
|
|
55
|
-
level: number;
|
|
56
|
-
time: number;
|
|
57
|
-
pid: number;
|
|
58
|
-
hostname: string;
|
|
59
|
-
}
|
package/dist/interfaces/index.js
DELETED