@lib-stack/logger
v0.2.2
Published
A management tool for log printing.
Readme
Logger
A lightweight log management tool that supports different log levels and modular management.
Features
- Support setting log names for modular log management
- Support multiple log levels: trace, debug, info, warn, error, fatal
- Lightweight design with zero dependencies
- Complete TypeScript type support
Installation
Install using npm:
npm install @lib-stack/loggerBasic Usage
Using the Default Exported logger Instance
import { logger } from '@lib-stack/logger'
// Set log level
logger.setLevel('info')
// Print logs of different levels
logger.debug('This is a debug log') // Will not be output because level is lower than info
logger.error('This is an error log')Managing Multiple Log Instances with get Method
import { logger } from '@lib-stack/logger'
// Get or create named log instances
const apiLogger = logger.get('api')
const dbLogger = logger.get('database')Creating Custom Log Instances
import { createLogger } from '@lib-stack/logger'
// Create default log instance
const logger = createLogger()API Reference
createLogger(options?: LoggerOptions): Logger
Creates a new log instance.
Parameters
options: Optional configuration objectname: Log name, used to identify different log instances
Return Value
- Returns a log object with the following methods:
trace(...args: unknown[]): Print trace logsdebug(...args: unknown[]): Print debug logsinfo(...args: unknown[]): Print info logswarn(...args: unknown[]): Print warning logserror(...args: unknown[]): Print error logsfatal(...args: unknown[]): Print fatal error logssetLevel(level: LogLevel): Set log levelgetLevel(): LogLevel: Get current log levelget(name?: string, options?: Extract<LoggerOptions, 'name'>): Logger: Get or create named log instancesgetAll(): Logger[]: Get all created log instances
Log Levels
Available log levels (from lowest to highest severity):
trace: Most detailed logs, usually for development debuggingdebug: Debug information logsinfo: General information logswarn: Warning information that doesn't affect program operationerror: Error information that may affect some functionsfatal: Fatal error information, program may not continue runningoff: Turn off all log output
Advanced Usage
Modular Log Management
// File: src/api.ts
import { logger } from '@lib-stack/logger'
const apiLogger = logger.get('api')
apiLogger.info('API request started')// File: src/database.ts
import { logger } from '@lib-stack/logger'
const dbLogger = logger.get('database')
dbLogger.debug('Executing SQL query')Configuring Different Log Levels for Different Environments
import { logger } from '@lib-stack/logger'
if (process.env.NODE_ENV === 'development') {
logger.setLevel('debug')
}
else {
logger.setLevel('error')
}License
This project is licensed under the MIT License. For details, see the LICENSE file.
