Skip to content

Commit cd0bf68

Browse files
authored
feat: support logger destination (#2896)
* add-pino-destination-stream-support * destinationStream => loggerDestination
1 parent a69c3ec commit cd0bf68

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

docs/getting-started/installation.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ A boolean that when set to `true` tells Payload to start in local-only mode whic
140140

141141
Specify options for the built-in Pino logger that Payload uses for internal logging. See [Pino Docs](https://getpino.io/#/docs/api?id=options) for more info on what is available.
142142

143+
##### `loggerDestination`
144+
145+
Specify destination stream for the built-in Pino logger that Payload uses for internal logging. See [Pino Docs](https://getpino.io/#/docs/api?id=pino-destination) for more info on what is available.
146+
143147
##### `onInit`
144148

145149
A function that is called immediately following startup that receives the Payload instance as it's only argument.

src/config/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import SMTPConnection from 'nodemailer/lib/smtp-connection';
77
import GraphQL from 'graphql';
88
import { ConnectOptions } from 'mongoose';
99
import React from 'react';
10-
import { LoggerOptions } from 'pino';
10+
import { DestinationStream, LoggerOptions } from 'pino';
1111
import type { InitOptions as i18nInitOptions } from 'i18next';
1212
import { Payload } from '../payload';
1313
import {
@@ -116,6 +116,7 @@ export type InitOptions = {
116116
* See Pino Docs for options: https://getpino.io/#/docs/api?id=options
117117
*/
118118
loggerOptions?: LoggerOptions;
119+
loggerDestination?: DestinationStream;
119120

120121
/**
121122
* Sometimes, with the local API, you might need to pass a config file directly, for example, serverless on Vercel

src/payload.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
146146
* @param options
147147
*/
148148
async init(options: InitOptions): Promise<Payload> {
149-
this.logger = Logger('payload', options.loggerOptions);
149+
this.logger = Logger('payload', options.loggerOptions, options.loggerDestination);
150150
this.mongoURL = options.mongoURL;
151151
this.mongoOptions = options.mongoOptions;
152152

src/utilities/logger.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ const defaultLoggerOptions = {
99
},
1010
};
1111

12-
const getLogger = (name = 'payload', options?: pino.LoggerOptions): PayloadLogger => pino({
12+
const getLogger = (name = 'payload', options?: pino.LoggerOptions, destination?: pino.DestinationStream): PayloadLogger => pino({
1313
name: options?.name || name,
1414
enabled: process.env.DISABLE_LOGGING !== 'true',
1515
...(options || defaultLoggerOptions),
16-
});
16+
}, destination);
1717

1818
export default getLogger;

0 commit comments

Comments
 (0)