@andrewheberle/ts-slog (英语)
TypeScript 应用程序的简单结构记录器.
安装
npm install @andrewheberle/ts-slog
使用量
基本示例
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)
日志级别
日志支持四个日志级别:
Debug(0) - 详细调试信息Info(1) - 一般信息信息(默认)Warning(2) - 警告信息Error(3) - 错误信息
配置
创建日志实例时配置最小日志级别 :
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")
添加上下文
通过通过附加参数添加密钥值对以登录条目 :
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'
// }
组
一组K/V对可分组如下:
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'
// }
文本输出
默认,默认 logHandler 将日志对象直接传递到
console.log。使用内置 TextHandler 改为格式化条目
作为一行案文:
import { Logger, TextHandler } from "@andrewheberle/ts-slog"
const logger = new Logger({ logHandler: TextHandler })
logger.info("User logged in", "userId", 123, "action", "login")
// Output:
// INFO User logged in userId=123 action=login
引用含有白空格的字符串值 :
logger.info("User logged in", "name", "John Doe", "userId", 123)
// Output:
// INFO: User logged in name="John Doe" userId=123
API 密码
new Logger(settings?)
创建新的日志实例.
参数:
settings(可选):配置对象logHandler: Handler 到输出日志( 默认值 :console.log(中文(简体) )minLevel: 最小日志级别( 默认值 :LogLevel.Info(中文(简体) )
方法
debug(message: string, ...args: unknown[]): void- 在“调试”级别登录info(message: string, ...args: unknown[]): void- 在“ info”级登录warn(message: string, ...args: unknown[]): void- 在“警告”一级登录error(message: string, ...args: unknown[]): void- 记录在“错误”一级with(...args: unknown[]): Logger- 返回一个新的Logger增加了 K/V 对
所有方法都接受一个消息串,然后是可选的密钥值对.
职能
group(key: string, ...args: unknown[]): unknown[]- 根据密钥前缀创建 K/V 对TextHandler(output: Record<string, unknown>): void- 一个logHandler将日志条目格式化为文本(level message key=value ...)并通过console.log
许可证
麻省理工学院