Skip to main content
The SDK includes a built-in logging system to help debug requests, monitor errors, and track retry behavior.

Log Levels

The SDK supports four log levels defined in the LogLevel enum:

Log Level Hierarchy

Levels are ordered by severity:
  • DEBUG (20) - Logs all messages including request/response bodies
  • INFO (40) - Logs request start, success, retries
  • WARN (60) - Logs request failures and warnings (default)
  • ERROR (80) - Logs only critical errors
When you set a log level, all messages at that level and higher are logged.

Basic Configuration

Set the log level when creating the client:

Default Logging (WARN)

By default, only warnings and errors are logged:

Verbose Logging (DEBUG)

Enable debug logging to see all request details:

Silent Logging (ERROR)

Only log critical errors:

What Gets Logged

INFO Level Messages

Request Start:
Request Success:
Retry Attempt:

WARN Level Messages

Request Failure:
Unknown Parameters:

DEBUG Level Messages

Failed Response Body:

Custom Logger

Provide a custom logger function to send logs to your own logging system:

Logger Type

The Logger type is a function that receives three arguments:
level
LogLevel
The log level for this message (DEBUG, INFO, WARN, or ERROR).
message
string
A short description of the event (e.g., "request start", "request fail").
extraInfo
Record<string, unknown>
Additional context as a key-value object (method, path, error codes, etc.).

Custom Logger Examples

Structured JSON Logging

Pino Logger

Winston Logger

Filter Sensitive Data

Only Log Errors

Production Best Practices

Development vs Production

Sampling High-Volume Logs

Log Aggregation

Debugging Tips

Enable Debug Logs Temporarily

Log Request IDs

Request IDs are automatically included in success and failure logs when available:
Include these IDs when contacting Notion support.

Monitor Retry Patterns

Set logLevel: LogLevel.INFO to see retry attempts:
Frequent retries may indicate rate limiting or API issues.

Default Console Logger

The SDK uses a simple console logger by default:
This logger writes to console.debug, console.info, console.warn, and console.error.