@beignet/provider-logger-pino 0.0.31 → 0.0.32
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/CHANGELOG.md +37 -0
- package/README.md +22 -3
- package/dist/index.d.ts +52 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -27
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +81 -35
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @beignet/provider-logger-pino
|
|
2
2
|
|
|
3
|
+
## 0.0.32
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f759611: Provider factory options now resolve through one framework-owned rule:
|
|
8
|
+
`ProviderConfigDef` gains an `overrides` map that merges defined values over
|
|
9
|
+
env-derived input before validation, and every first-party provider factory
|
|
10
|
+
uses it instead of hand-rolled schema defaults and setup-time fallbacks. The
|
|
11
|
+
precedence is now uniform — defined factory options win over environment
|
|
12
|
+
variables in all thirteen providers. This flips the previous env-wins
|
|
13
|
+
behavior of `provider-cache-redis`, `provider-locks-redis`, and the storage,
|
|
14
|
+
search, and blob providers; set the env var (or drop the option) if you
|
|
15
|
+
relied on env winning. `installProviderForTest(...)` gains an `env` option
|
|
16
|
+
that resolves config through the same loader, and unreachable missing-config
|
|
17
|
+
guards in the pino and inngest factories are gone.
|
|
18
|
+
- eb680ef: Provider naming now follows one implementation-first order matching the
|
|
19
|
+
factories. `@beignet/provider-redis` is renamed `@beignet/provider-cache-redis`
|
|
20
|
+
(the package fills the cache port; the raw client stays as the
|
|
21
|
+
`ctx.ports.redis` escape hatch) with `redisCacheProvider`,
|
|
22
|
+
`createRedisCacheProvider`, and provider name `cache-redis` matching
|
|
23
|
+
`locks-redis`. Default consts flip to implementation-first:
|
|
24
|
+
`loggerPinoProvider` is now `pinoLoggerProvider`, `mailResendProvider` is now
|
|
25
|
+
`resendMailProvider`, and `mailSmtpProvider` is now `smtpMailProvider`.
|
|
26
|
+
CLI starter templates and the `redis-cache` provider preset wire the new
|
|
27
|
+
names. No aliases are kept.
|
|
28
|
+
- 671b986: Every provider package now exposes a `createXProvider(options)` factory, so
|
|
29
|
+
env-only configuration is a convenience rather than the only path. New
|
|
30
|
+
factories: `createPinoLoggerProvider`, `createResendMailProvider`,
|
|
31
|
+
`createSmtpMailProvider`, `createStripePaymentsProvider`,
|
|
32
|
+
`createUpstashRateLimitProvider`, and `createInngestJobsProvider`. Options
|
|
33
|
+
mirror each provider's env config fields and override env-derived values; the
|
|
34
|
+
default consts keep their behavior and now simply call their factory. (The
|
|
35
|
+
consts themselves are renamed to implementation-first order —
|
|
36
|
+
`pinoLoggerProvider`, `resendMailProvider`, `smtpMailProvider` — in this
|
|
37
|
+
release's provider naming normalization; `stripePaymentsProvider`,
|
|
38
|
+
`upstashRateLimitProvider`, and `inngestJobsProvider` already followed it.)
|
|
39
|
+
|
|
3
40
|
## 0.0.31
|
|
4
41
|
|
|
5
42
|
## 0.0.30
|
package/README.md
CHANGED
|
@@ -26,13 +26,13 @@ bun add -d pino-pretty
|
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
28
|
import { createNextServer, createNextServerLoader } from "@beignet/next";
|
|
29
|
-
import {
|
|
29
|
+
import { pinoLoggerProvider } from "@beignet/provider-logger-pino";
|
|
30
30
|
import { appPorts } from "@/infra/app-ports";
|
|
31
31
|
|
|
32
32
|
export const getServer = createNextServerLoader(() =>
|
|
33
33
|
createNextServer({
|
|
34
34
|
ports: appPorts,
|
|
35
|
-
providers: [
|
|
35
|
+
providers: [pinoLoggerProvider],
|
|
36
36
|
context: ({ ports }) => ({
|
|
37
37
|
requestId: crypto.randomUUID(),
|
|
38
38
|
ports,
|
|
@@ -60,6 +60,23 @@ The provider reads `LOG_`-prefixed environment variables:
|
|
|
60
60
|
`LOG_FORMAT=pretty` requires `pino-pretty`. If it is unavailable, the provider
|
|
61
61
|
falls back to JSON logging and emits a warning.
|
|
62
62
|
|
|
63
|
+
Use `createPinoLoggerProvider(...)` when you want to pass options directly
|
|
64
|
+
instead of relying only on `LOG_*` env vars. Options override env-derived
|
|
65
|
+
values:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
import { createPinoLoggerProvider } from "@beignet/provider-logger-pino";
|
|
69
|
+
|
|
70
|
+
export const providers = [
|
|
71
|
+
createPinoLoggerProvider({
|
|
72
|
+
level: "debug",
|
|
73
|
+
format: "pretty",
|
|
74
|
+
service: "api",
|
|
75
|
+
timestamp: true,
|
|
76
|
+
}),
|
|
77
|
+
];
|
|
78
|
+
```
|
|
79
|
+
|
|
63
80
|
## Usage
|
|
64
81
|
|
|
65
82
|
```ts
|
|
@@ -76,7 +93,9 @@ log.error("Failed to publish post", { error });
|
|
|
76
93
|
|
|
77
94
|
| Export | Purpose |
|
|
78
95
|
| --- | --- |
|
|
79
|
-
| `
|
|
96
|
+
| `pinoLoggerProvider` | Default env-backed Beignet provider |
|
|
97
|
+
| `createPinoLoggerProvider` | Provider factory; options override `LOG_*` env values |
|
|
98
|
+
| `CreatePinoLoggerProviderOptions` | Options for `createPinoLoggerProvider` |
|
|
80
99
|
| `LoggerPinoConfig` | Validated provider config type |
|
|
81
100
|
| `LoggerPort` | Re-export from `@beignet/core/ports` |
|
|
82
101
|
| `LogLevel` | Re-export from `@beignet/core/ports` |
|
package/dist/index.d.ts
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* @example
|
|
13
13
|
* ```ts
|
|
14
14
|
* import { createNextServer } from "@beignet/next";
|
|
15
|
-
* import {
|
|
15
|
+
* import { pinoLoggerProvider } from "@beignet/provider-logger-pino";
|
|
16
16
|
*
|
|
17
17
|
* const server = await createNextServer({
|
|
18
18
|
* ports: basePorts,
|
|
19
|
-
* providers: [
|
|
19
|
+
* providers: [pinoLoggerProvider],
|
|
20
20
|
* // ...
|
|
21
21
|
* });
|
|
22
22
|
*
|
|
@@ -62,7 +62,54 @@ declare const LoggerPinoConfigSchema: z.ZodObject<{
|
|
|
62
62
|
*/
|
|
63
63
|
export type LoggerPinoConfig = z.infer<typeof LoggerPinoConfigSchema>;
|
|
64
64
|
/**
|
|
65
|
-
* Pino logger provider
|
|
65
|
+
* Options for the Pino logger provider factory.
|
|
66
|
+
*/
|
|
67
|
+
export interface CreatePinoLoggerProviderOptions {
|
|
68
|
+
/**
|
|
69
|
+
* Minimum log level. Overrides `LOG_LEVEL`.
|
|
70
|
+
*/
|
|
71
|
+
level?: LoggerPinoConfig["LEVEL"];
|
|
72
|
+
/**
|
|
73
|
+
* Log format. Overrides `LOG_FORMAT`.
|
|
74
|
+
*/
|
|
75
|
+
format?: LoggerPinoConfig["FORMAT"];
|
|
76
|
+
/**
|
|
77
|
+
* Service name added to log bindings. Overrides `LOG_SERVICE`.
|
|
78
|
+
*/
|
|
79
|
+
service?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Whether to include timestamps in log entries. Overrides `LOG_TIMESTAMP`.
|
|
82
|
+
*/
|
|
83
|
+
timestamp?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create an env-backed Pino logger provider.
|
|
87
|
+
*
|
|
88
|
+
* Options override the corresponding `LOG_*` env values.
|
|
89
|
+
*/
|
|
90
|
+
export declare function createPinoLoggerProvider(options?: CreatePinoLoggerProviderOptions): import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
|
|
91
|
+
LEVEL: z.ZodDefault<z.ZodEnum<{
|
|
92
|
+
trace: "trace";
|
|
93
|
+
debug: "debug";
|
|
94
|
+
info: "info";
|
|
95
|
+
warn: "warn";
|
|
96
|
+
error: "error";
|
|
97
|
+
fatal: "fatal";
|
|
98
|
+
}>>;
|
|
99
|
+
FORMAT: z.ZodDefault<z.ZodEnum<{
|
|
100
|
+
json: "json";
|
|
101
|
+
pretty: "pretty";
|
|
102
|
+
}>>;
|
|
103
|
+
SERVICE: z.ZodOptional<z.ZodString>;
|
|
104
|
+
TIMESTAMP: z.ZodDefault<z.ZodPipe<z.ZodEnum<{
|
|
105
|
+
true: "true";
|
|
106
|
+
false: "false";
|
|
107
|
+
}>, z.ZodTransform<boolean, "true" | "false">>>;
|
|
108
|
+
}, z.core.$strip>, {
|
|
109
|
+
logger: LoggerPort;
|
|
110
|
+
}, unknown, void>;
|
|
111
|
+
/**
|
|
112
|
+
* Default env-backed Pino logger provider.
|
|
66
113
|
*
|
|
67
114
|
* Configuration via environment variables:
|
|
68
115
|
* - LOG_LEVEL: Minimum log level (trace/debug/info/warn/error/fatal, default: info)
|
|
@@ -74,12 +121,12 @@ export type LoggerPinoConfig = z.infer<typeof LoggerPinoConfigSchema>;
|
|
|
74
121
|
* ```ts
|
|
75
122
|
* const server = await createNextServer({
|
|
76
123
|
* ports: basePorts,
|
|
77
|
-
* providers: [
|
|
124
|
+
* providers: [pinoLoggerProvider],
|
|
78
125
|
* // ...
|
|
79
126
|
* });
|
|
80
127
|
* ```
|
|
81
128
|
*/
|
|
82
|
-
export declare const
|
|
129
|
+
export declare const pinoLoggerProvider: import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
|
|
83
130
|
LEVEL: z.ZodDefault<z.ZodEnum<{
|
|
84
131
|
trace: "trace";
|
|
85
132
|
debug: "debug";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAYhE;;;GAGG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBA8B1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA8EtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAYhE;;;GAGG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBA8B1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA8EtE;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,+BAAoC;;;;;;;;;;;;;;;;;;;;kBA8C9C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* @example
|
|
13
13
|
* ```ts
|
|
14
14
|
* import { createNextServer } from "@beignet/next";
|
|
15
|
-
* import {
|
|
15
|
+
* import { pinoLoggerProvider } from "@beignet/provider-logger-pino";
|
|
16
16
|
*
|
|
17
17
|
* const server = await createNextServer({
|
|
18
18
|
* ports: basePorts,
|
|
19
|
-
* providers: [
|
|
19
|
+
* providers: [pinoLoggerProvider],
|
|
20
20
|
* // ...
|
|
21
21
|
* });
|
|
22
22
|
*
|
|
@@ -135,7 +135,51 @@ function wrapPino(logger) {
|
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
|
-
* Pino logger provider
|
|
138
|
+
* Create an env-backed Pino logger provider.
|
|
139
|
+
*
|
|
140
|
+
* Options override the corresponding `LOG_*` env values.
|
|
141
|
+
*/
|
|
142
|
+
export function createPinoLoggerProvider(options = {}) {
|
|
143
|
+
return createProvider({
|
|
144
|
+
name: "logger-pino",
|
|
145
|
+
config: {
|
|
146
|
+
schema: LoggerPinoConfigSchema,
|
|
147
|
+
envPrefix: "LOG_",
|
|
148
|
+
// Defined options win over env-derived values at config load time.
|
|
149
|
+
overrides: {
|
|
150
|
+
LEVEL: options.level,
|
|
151
|
+
FORMAT: options.format,
|
|
152
|
+
TIMESTAMP: options.timestamp,
|
|
153
|
+
SERVICE: options.service,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
async setup({ config }) {
|
|
157
|
+
if (!config) {
|
|
158
|
+
// Every schema field has a default, so a declared config always
|
|
159
|
+
// parses; this only guards the typing.
|
|
160
|
+
throw new Error("[pinoLoggerProvider] Provider config was not loaded.");
|
|
161
|
+
}
|
|
162
|
+
const resolvedConfig = {
|
|
163
|
+
LEVEL: config.LEVEL,
|
|
164
|
+
FORMAT: config.FORMAT,
|
|
165
|
+
TIMESTAMP: config.TIMESTAMP,
|
|
166
|
+
};
|
|
167
|
+
// Prepare base bindings
|
|
168
|
+
const service = config.SERVICE;
|
|
169
|
+
const baseBindings = {};
|
|
170
|
+
if (service) {
|
|
171
|
+
baseBindings.service = service;
|
|
172
|
+
}
|
|
173
|
+
// Create and configure Pino logger
|
|
174
|
+
const logger = createPinoLogger(resolvedConfig, baseBindings);
|
|
175
|
+
// Wrap logger to match LoggerPort interface
|
|
176
|
+
const port = wrapPino(logger);
|
|
177
|
+
return { ports: { logger: port } };
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Default env-backed Pino logger provider.
|
|
139
183
|
*
|
|
140
184
|
* Configuration via environment variables:
|
|
141
185
|
* - LOG_LEVEL: Minimum log level (trace/debug/info/warn/error/fatal, default: info)
|
|
@@ -147,32 +191,10 @@ function wrapPino(logger) {
|
|
|
147
191
|
* ```ts
|
|
148
192
|
* const server = await createNextServer({
|
|
149
193
|
* ports: basePorts,
|
|
150
|
-
* providers: [
|
|
194
|
+
* providers: [pinoLoggerProvider],
|
|
151
195
|
* // ...
|
|
152
196
|
* });
|
|
153
197
|
* ```
|
|
154
198
|
*/
|
|
155
|
-
export const
|
|
156
|
-
name: "logger-pino",
|
|
157
|
-
config: {
|
|
158
|
-
schema: LoggerPinoConfigSchema,
|
|
159
|
-
envPrefix: "LOG_",
|
|
160
|
-
},
|
|
161
|
-
async setup({ config }) {
|
|
162
|
-
if (!config) {
|
|
163
|
-
throw new Error("[loggerPinoProvider] Missing logger config. " +
|
|
164
|
-
"Please set LOG_LEVEL, LOG_FORMAT, etc. environment variables.");
|
|
165
|
-
}
|
|
166
|
-
// Prepare base bindings
|
|
167
|
-
const baseBindings = {};
|
|
168
|
-
if (config.SERVICE) {
|
|
169
|
-
baseBindings.service = config.SERVICE;
|
|
170
|
-
}
|
|
171
|
-
// Create and configure Pino logger
|
|
172
|
-
const logger = createPinoLogger(config, baseBindings);
|
|
173
|
-
// Wrap logger to match LoggerPort interface
|
|
174
|
-
const port = wrapPino(logger);
|
|
175
|
-
return { ports: { logger: port } };
|
|
176
|
-
},
|
|
177
|
-
});
|
|
199
|
+
export const pinoLoggerProvider = createPinoLoggerProvider();
|
|
178
200
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/provider-logger-pino",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.32",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pino logger provider for Beignet - adds logger port using pino",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"registration": {
|
|
89
89
|
"required": true,
|
|
90
90
|
"tokens": [
|
|
91
|
-
"
|
|
91
|
+
"pinoLoggerProvider"
|
|
92
92
|
]
|
|
93
93
|
}
|
|
94
94
|
}
|
package/src/index.ts
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* @example
|
|
13
13
|
* ```ts
|
|
14
14
|
* import { createNextServer } from "@beignet/next";
|
|
15
|
-
* import {
|
|
15
|
+
* import { pinoLoggerProvider } from "@beignet/provider-logger-pino";
|
|
16
16
|
*
|
|
17
17
|
* const server = await createNextServer({
|
|
18
18
|
* ports: basePorts,
|
|
19
|
-
* providers: [
|
|
19
|
+
* providers: [pinoLoggerProvider],
|
|
20
20
|
* // ...
|
|
21
21
|
* });
|
|
22
22
|
*
|
|
@@ -167,7 +167,83 @@ function wrapPino(logger: PinoLogger): LoggerPort {
|
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
/**
|
|
170
|
-
* Pino logger provider
|
|
170
|
+
* Options for the Pino logger provider factory.
|
|
171
|
+
*/
|
|
172
|
+
export interface CreatePinoLoggerProviderOptions {
|
|
173
|
+
/**
|
|
174
|
+
* Minimum log level. Overrides `LOG_LEVEL`.
|
|
175
|
+
*/
|
|
176
|
+
level?: LoggerPinoConfig["LEVEL"];
|
|
177
|
+
/**
|
|
178
|
+
* Log format. Overrides `LOG_FORMAT`.
|
|
179
|
+
*/
|
|
180
|
+
format?: LoggerPinoConfig["FORMAT"];
|
|
181
|
+
/**
|
|
182
|
+
* Service name added to log bindings. Overrides `LOG_SERVICE`.
|
|
183
|
+
*/
|
|
184
|
+
service?: string;
|
|
185
|
+
/**
|
|
186
|
+
* Whether to include timestamps in log entries. Overrides `LOG_TIMESTAMP`.
|
|
187
|
+
*/
|
|
188
|
+
timestamp?: boolean;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Create an env-backed Pino logger provider.
|
|
193
|
+
*
|
|
194
|
+
* Options override the corresponding `LOG_*` env values.
|
|
195
|
+
*/
|
|
196
|
+
export function createPinoLoggerProvider(
|
|
197
|
+
options: CreatePinoLoggerProviderOptions = {},
|
|
198
|
+
) {
|
|
199
|
+
return createProvider({
|
|
200
|
+
name: "logger-pino",
|
|
201
|
+
|
|
202
|
+
config: {
|
|
203
|
+
schema: LoggerPinoConfigSchema,
|
|
204
|
+
envPrefix: "LOG_",
|
|
205
|
+
// Defined options win over env-derived values at config load time.
|
|
206
|
+
overrides: {
|
|
207
|
+
LEVEL: options.level,
|
|
208
|
+
FORMAT: options.format,
|
|
209
|
+
TIMESTAMP: options.timestamp,
|
|
210
|
+
SERVICE: options.service,
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
async setup({ config }) {
|
|
215
|
+
if (!config) {
|
|
216
|
+
// Every schema field has a default, so a declared config always
|
|
217
|
+
// parses; this only guards the typing.
|
|
218
|
+
throw new Error("[pinoLoggerProvider] Provider config was not loaded.");
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const resolvedConfig: LoggerPinoConfig = {
|
|
222
|
+
LEVEL: config.LEVEL,
|
|
223
|
+
FORMAT: config.FORMAT,
|
|
224
|
+
TIMESTAMP: config.TIMESTAMP,
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// Prepare base bindings
|
|
228
|
+
const service = config.SERVICE;
|
|
229
|
+
const baseBindings: Record<string, unknown> = {};
|
|
230
|
+
if (service) {
|
|
231
|
+
baseBindings.service = service;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Create and configure Pino logger
|
|
235
|
+
const logger = createPinoLogger(resolvedConfig, baseBindings);
|
|
236
|
+
|
|
237
|
+
// Wrap logger to match LoggerPort interface
|
|
238
|
+
const port = wrapPino(logger);
|
|
239
|
+
|
|
240
|
+
return { ports: { logger: port } };
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Default env-backed Pino logger provider.
|
|
171
247
|
*
|
|
172
248
|
* Configuration via environment variables:
|
|
173
249
|
* - LOG_LEVEL: Minimum log level (trace/debug/info/warn/error/fatal, default: info)
|
|
@@ -179,39 +255,9 @@ function wrapPino(logger: PinoLogger): LoggerPort {
|
|
|
179
255
|
* ```ts
|
|
180
256
|
* const server = await createNextServer({
|
|
181
257
|
* ports: basePorts,
|
|
182
|
-
* providers: [
|
|
258
|
+
* providers: [pinoLoggerProvider],
|
|
183
259
|
* // ...
|
|
184
260
|
* });
|
|
185
261
|
* ```
|
|
186
262
|
*/
|
|
187
|
-
export const
|
|
188
|
-
name: "logger-pino",
|
|
189
|
-
|
|
190
|
-
config: {
|
|
191
|
-
schema: LoggerPinoConfigSchema,
|
|
192
|
-
envPrefix: "LOG_",
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
async setup({ config }) {
|
|
196
|
-
if (!config) {
|
|
197
|
-
throw new Error(
|
|
198
|
-
"[loggerPinoProvider] Missing logger config. " +
|
|
199
|
-
"Please set LOG_LEVEL, LOG_FORMAT, etc. environment variables.",
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// Prepare base bindings
|
|
204
|
-
const baseBindings: Record<string, unknown> = {};
|
|
205
|
-
if (config.SERVICE) {
|
|
206
|
-
baseBindings.service = config.SERVICE;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Create and configure Pino logger
|
|
210
|
-
const logger = createPinoLogger(config, baseBindings);
|
|
211
|
-
|
|
212
|
-
// Wrap logger to match LoggerPort interface
|
|
213
|
-
const port = wrapPino(logger);
|
|
214
|
-
|
|
215
|
-
return { ports: { logger: port } };
|
|
216
|
-
},
|
|
217
|
-
});
|
|
263
|
+
export const pinoLoggerProvider = createPinoLoggerProvider();
|