CustomLogger
The main logger service implementing NestJS LoggerService and ILogger interface.
Import
import { CustomLogger } from '@shinijs/logger';Usage
import { Injectable } from '@nestjs/common';
import { CustomLogger } from '@shinijs/logger';
@Injectable()
export class MyService {
constructor(private readonly logger: CustomLogger) {
this.logger.setContext('MyService');
}
}Methods
setContext(context: string): void
Sets the default context for all log messages.
Parameters:
context- The context name (e.g., service name)
Example:
this.logger.setContext('UserService');
this.logger.log('User created'); // Context: 'UserService'getContext(): string
Gets the current context.
Returns: The current context string
Example:
const context = this.logger.getContext(); // 'UserService'log(message: string, context?: string): void
Logs an informational message. Alias for info().
Parameters:
message- The log messagecontext- Optional context override
Example:
this.logger.log('User created', 'UserService');
// or
this.logger.log('User created'); // Uses default contextinfo(message: string, meta?: Record<string, unknown>, context?: LogContext): void
Logs an informational message with optional metadata.
Parameters:
message- The log messagemeta- Optional metadata objectcontext- Optional context (string or object)
Example:
this.logger.info('User created', {
userId: '123',
email: 'user@example.com',
});error(message: string, error?: Error | unknown, context?: LogContext): void
Logs an error message with optional error object.
Parameters:
message- The error messageerror- Optional Error object or error datacontext- Optional context (string or object)
Example:
try {
await someOperation();
} catch (error) {
this.logger.error('Operation failed', error, {
operation: 'someOperation',
});
}warn(message: string, meta?: Record<string, unknown>, context?: LogContext): void
Logs a warning message with optional metadata.
Parameters:
message- The warning messagemeta- Optional metadata objectcontext- Optional context (string or object)
Example:
this.logger.warn('Rate limit approaching', {
current: 90,
limit: 100,
});debug(message: string, meta?: Record<string, unknown>, context?: LogContext): void
Logs a debug message with optional metadata.
Parameters:
message- The debug messagemeta- Optional metadata objectcontext- Optional context (string or object)
Example:
this.logger.debug('Processing step', {
step: 1,
data: someData,
});verbose(message: string, meta?: Record<string, unknown>, context?: LogContext): void
Logs a verbose/trace message with optional metadata.
Parameters:
message- The verbose messagemeta- Optional metadata objectcontext- Optional context (string or object)
Example:
this.logger.verbose('Detailed trace info', {
internalState: state,
});fatal(message: string, meta?: Record<string, unknown>, context?: LogContext): void
Logs a fatal error message with optional metadata.
Parameters:
message- The fatal error messagemeta- Optional metadata objectcontext- Optional context (string or object)
Example:
this.logger.fatal('Application cannot start', {
reason: 'Database connection failed',
error: connectionError,
});Context Types
The context parameter can be:
String - Simple context name
typescriptthis.logger.info('Message', {}, 'MyService');LogContextObject - Rich context object
typescriptthis.logger.info('Message', {}, { requestId: 'req-123', userId: 'user-456', method: 'POST', url: '/api/users', });
NestJS LoggerService Compatibility
CustomLogger implements NestJS LoggerService, so it can be used as a drop-in replacement:
import { LoggerService } from '@nestjs/common';
// CustomLogger implements LoggerService
const logger: LoggerService = customLogger;
logger.log('Message');
logger.error('Error', 'Trace');
logger.warn('Warning');
logger.debug('Debug');
logger.verbose('Verbose');See Also
- ILogger Interface - Logger interface definition
- LoggerFactory - Create context-bound loggers
- Examples - Usage examples