base-log-factory
A flexible and simple JS logging library that allows logging or collecting logs in different environments by configuring various Appenders. Suitable for browser, NodeJS and other environments.
Core Features
Multi-level logging
SupportsTRACE/DEBUG/INFO/WARN/ERROR/FATAL/OFFwith precise control over log granularity.Flexible Appender Configuration
Built-inConsoleAppender,FileAppender(size-based rolling),DateFileAppender(date-based rolling), and custom Appender extensions.Rich Formatting Options
ProvidesBasicLayoutandPatternLayout(similar to Log4j) with customizable placeholders.Context Management
Supports Mapped Diagnostic Context (MDC) for attaching request IDs, user information, etc.
Documentation
For detailed usage instructions and API references, please visit the official documentation:
Quick Start
1. Installation
npm install base-log-factory
2. Basic Usage
// factory.ts
import { LogFactory, ConsoleAppender } from 'base-log-factory';
export default new LogFactory({
appenders: [new ConsoleAppender()]
});
// main.ts
import logFactory from './factory';
const logger = logFactory.getLogger('app');
logger.info('Server started successfully');
Core Concepts
1. Log Levels (with color coding)
| Level | Value | Description | Recommended Use Cases |
|---|---|---|---|
| TRACE | 6 | Detailed tracking logs | Debugging code flow |
| DEBUG | 5 | Debugging information | Development-stage debugging |
| INFO | 4 | Operational information | Key business process milestones |
| WARN | 3 | Non-critical issues | Resource warnings (e.g., low memory) |
| ERROR | 2 | Error events | Failed operations |
| FATAL | 1 | Critical system failures | System crashes |
| OFF | 0 | Disable all logging | Disable logging |
2. Appender Comparison
| Type | Features | Use Cases |
|---|---|---|
ConsoleAppender |
Realtime console output | Development debugging |
FileAppender |
Size-based rolling (e.g., app.log.1) | Production logging |
DateFileAppender |
Date-based rolling (e.g., app.2023-08-01.log) | Daily log archiving |
Contribution Guide
Development Setup
npm installTesting
npm test # Run unit testsBefore Submitting PRs
- Ensure ESLint is configured (VSCode plugin recommended)
- Add test cases for new features
- Update documentation
