A Pino logger adapter for TypeORM that provides structured logging with configurable options and advanced features.
- 🚀 High-performance logging with Pino
- 📊 Structured JSON logging
- ⚙️ Configurable logging levels and options
- 🐌 Slow query detection and logging
- 📝 Query parameter logging with truncation
- 🔍 Migration and schema operation logging
- 🎯 Customizable context for all log entries
- 🔧 QueryRunner context extraction (connection, database, transaction status)
- ✂️ Automatic query truncation for large queries
- 🤫 Message filtering to suppress unwanted logs
- 🛡️ Type-safe implementation with TypeScript
bun add typeorm-pino-logger pino typeormimport { DataSource } from 'typeorm';
import pino from 'pino';
import { TypeOrmPinoLogger } from 'typeorm-pino-logger';
const logger = pino();
const typeormLogger = new TypeOrmPinoLogger(logger);
const dataSource = new DataSource({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'user',
password: 'password',
database: 'mydb',
logger: typeormLogger,
logging: true,
// ... other TypeORM options
});Suppress unwanted log messages, such as glob pattern discovery notices during startup:
import { TypeOrmPinoLogger, FilterFunction } from 'typeorm-pino-logger';
const filterOutGlobMessages: FilterFunction = (message, type) => {
if (type === 'general' && message.startsWith('All classes found using provided glob pattern')) {
return false; // Suppress this message
}
return true; // Log all other messages
};
const typeormLogger = new TypeOrmPinoLogger(logger, {
messageFilter: filterOutGlobMessages,
});
// ... then use this logger in your DataSourceThat's it! Your TypeORM queries will now be logged with structured JSON output.
📚 Full Documentation - Complete guides and examples
- 🚀 Getting Started - Installation and basic usage
- ⚙️ Configuration - All configuration options
- 📊 Log Examples - See what the logs look like
- 🔧 Advanced Usage - Advanced patterns and integrations
- 📖 API Reference - Complete API documentation
# Install dependencies
bun install
# Build the project
bun run build
# Run tests
bun test
# Type checking
bun run check-types
# Linting
bun run lintMIT - See LICENSE for more information.
Please see CONTRIBUTING.md for details on how to contribute to this project.