@geren32/logger
v1.0.1
Published
High-performance logger with context and masking
Maintainers
Readme
@denis_softdoes/logger
Structured pino logger with request-scoped context propagation, recursive masking and optional rotating file output.
Features
- JSON logs to
stdoutby default - Optional rotating file logs
AsyncLocalStoragehelpers forrequestId,traceId,userId,tenantId- Recursive masking with circular reference protection
- Safe
Errorserialization - TypeScript-first API
Install
npm install @denis_softdoes/loggerBasic Usage
import { createLogger } from '@denis_softdoes/logger';
const logger = createLogger('billing-service');
logger.info('Invoice created', {
invoiceId: 42,
customerEmail: '[email protected]',
});Request Context
import { createLogger, runWithLogContext } from '@denis_softdoes/logger';
const logger = createLogger('api');
runWithLogContext({ requestId: 'REQ-1', traceId: 'TRACE-1' }, () => {
logger.info('Request started');
});NestJS Integration
import {
createLogger,
createNestLoggerService,
} from '@denis_softdoes/logger';
const logger = createLogger('api');
const nestLogger = createNestLoggerService(logger);
app.useLogger(nestLogger);Configuration
import { createLogger } from '@denis_softdoes/logger';
const logger = createLogger('api', {
level: 'debug',
masks: ['ssn'],
console: { enabled: true },
file: {
enabled: true,
dir: 'logs',
fileName: 'app.log',
errorFileName: 'error.log',
maxSize: '10M',
maxFiles: 7,
},
});Environment variables:
LOG_LEVELLOG_TO_FILELOG_DIRLOG_FILE_NAMELOG_ERROR_FILE_NAMELOG_FILE_MAX_SIZELOG_FILE_MAX_FILES
Notes
- File logging is opt-in.
- Masked fields are matched case-insensitively.
- Arrays, nested objects and
Errorinstances are handled safely.
