@andrewheberle/ts-slog
v1.3.0
Published
Simple structured logger for TypeScript
Downloads
828
Maintainers
Readme
@andrewheberle/ts-slog
A simple structured logger for TypeScript applications.
Installation
npm install @andrewheberle/ts-slogUsage
Basic Example
import { Logger } from '@andrewheberle/ts-slog'
const logger = new Logger()
logger.info("Application started")
logger.debug("Debug information", "userId", 123, "action", "login")
logger.warn("Warning message", "retries", 3)
logger.error("An error occurred", "errorCode", 500)Log Levels
The logger supports four log levels:
Debug(0) - Detailed debugging informationInfo(1) - General informational messages (default)Warning(2) - Warning messagesError(3) - Error messages
Configuration
Configure the minimum log level when creating a logger instance:
import { Logger, LogLevel } from "@andrewheberle/ts-slog"
// Only log warnings and errors
const logger = new Logger({ minLevel: LogLevel.Warning })
logger.debug("This won't be logged")
logger.info("This won't be logged either")
logger.warn("This will be logged")
logger.error("This will be logged too")Adding Context
Add key-value pairs to log entries by passing additional arguments:
import { Logger } from "@andrewheberle/ts-slog"
const logger = new Logger()
logger.info(
"User logged in",
"userId", 123,
"username", "john.doe",
"ip", "192.168.1.1"
)
// Output:
// {
// level: 'INFO',
// message: 'User logged in',
// userId: 123,
// username: 'john.doe',
// ip: '192.168.1.1'
// }Groups
A group of K/V pairs may be grouped as follows:
import { group, Logger } from "@andrewheberle/ts-slog"
const logger = new Logger()
logger.info(
"User logged in",
...group("user", "id", 123, "username", "john.doe"),
"ip", "192.168.1.1"
)
// Output:
// {
// level: 'INFO',
// message: 'User logged in',
// user.id: 123,
// user.username: 'john.doe',
// ip: '192.168.1.1'
// }API
new Logger(settings?)
Creates a new logger instance.
Parameters:
settings(optional): Configuration objectlogHandler: Handler to output logs (default:console.log)minLevel: Minimum log level (default:LogLevel.Info)
Methods
debug(message: string, ...args: unknown[]): void- Log at DEBUG levelinfo(message: string, ...args: unknown[]): void- Log at INFO levelwarn(message: string, ...args: unknown[]): void- Log at WARNING levelerror(message: string, ...args: unknown[]): void- Log at ERROR levelwith(...args: unknown[]): Logger- Returns a newLoggerwith additional K/V pairs added
Functions
group(key: string, ...args: unknown[]): unknown[]- Create K/V pairs based on key prefix
All methods accept a message string followed by optional key-value pairs.
License
MIT
