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/OFF
with 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
ProvidesBasicLayout
andPatternLayout
(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 install
Testing
npm test # Run unit tests
Before Submitting PRs
- Ensure ESLint is configured (VSCode plugin recommended)
- Add test cases for new features
- Update documentation