A logging plugin for Apollo Server, using Pino. Heavily inspired
by @shellscape/apollo-log, this plugin was written from the ground
up to work with the new plugins API in Apollo Server, and to use the
Pino logger library rather than loglevelnext
. This plugin's goal is to
log GraphQL operations without a ton of noise, but allow for more
in-depth messaging when needed.
Example Request Logs (using pino-pretty
):
INFO [2022-08-29 12:12:51 PM]: Started query HomePage
INFO [2022-08-29 12:12:51 PM]: Parameters: {}
INFO [2022-08-29 12:12:52 PM]: Completed query HomePage in 158ms
Install the library:
yarn add apollo-server-logging
Then, add it to your server plugins:
import { ApolloServer } from 'apollo-server'
import { schema } from './schema'
import { logger } from './logger'
export const server = new ApolloServer({
schema,
plugins: [
ApolloServerLogging({
// Pass in your application logger here, or leave blank to use the
// default `pino()` logger.
logger
// All parameters are logged, so use this option to redact certain
// sensitive information from your logs:
cleanVariableNames: ['password', 'token', 'phone', 'email'],
// By default, the above setting's value is `['password', 'token', 'captcha']`
}),
]
})
For more options, check out the documentation.
Full Documentation: https://tubbo.github.io/apollo-server-logging