@ coopages/ 浏览器
一个轻而易举,灵活的记录库,有色彩支持,时间戳,以及计时器功能. 这个日志支持多个日志级别,并允许方便的扩展并融入任何项目.
特征
- 多个日志级别页:1
INFO, (中文(简体) ),ERROR, (中文(简体) ),WARN,以及DEBUG日志级别 - 有色输出: 浏览器和节点环境中不同日志级别的可配置颜色
- 时间戳: 带有可配置格式的可选时间戳
- 计时器支持:用于性能测量的内置定时器功能
- 调试工具: 有条件调试操作的帮助方法
- 前缀信件: 自定义所有日志信件的前缀
- 环境检测: 为浏览器或节点环境自动调整输出格式
- 广泛: 随自定义功能容易扩展
安装
npm install @ecopages/logger
# or
yarn add @ecopages/logger
# or
bun add @ecopages/logger
基本用途
import { Logger } from "@ecopages/logger";
// Create a basic logger
const logger = new Logger("[my-app]");
// Log messages at different levels
logger.info("This is an informational message");
logger.warn("This is a warning message");
logger.error("This is an error message");
logger.debug("This is a debug message"); // Only shown if debug is enabled
高级配置
日志支持各种配置选项 :
const logger = new Logger("[my-app]", {
debug: true, // Enable debug messages
color: true, // Enable colored output
timestamp: true, // Add timestamps to messages
timestampFormat: "full", // Configure timestamp format
locale: "de-DE", // Optional locale for timestamps
verboseTimer: true, // Show timer start messages
colors: {
// Custom colors
INFO: "color: purple",
ERROR: "color: darkred",
},
});
配置选项
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
debug | 布尔 | false | 启用调试级别消息 |
color | 布尔 | true | 启用彩色输出 |
timestamp | 布尔 | false | 在信件中添加时间戳 |
timestampFormat | "完整""时间""短" | "时间" | 时间戳格式 |
locale | 字符串 qq 字符串 [] | "在美国" | 时间戳使用的地方 |
verboseTimer | 布尔 | false | 显示时间启动消息 |
colors | 部分 | - 说吧 | 日志级别自定义颜色 |
时间戳格式
full: 全日期和时间time: 只限时间short: 日期和时间短
时间戳输出通过 toLocaleString(locale, ...)。 。 。 .
默认为 en-US; 设置 locale 来定制它.
堆栈跟踪出错
为了保持堆放痕迹,通过实际 Error 对象 logger.error数字 :
try {
throw new Error("Something failed");
} catch (error: unknown) {
if (error instanceof Error) {
logger.error(error); // preserves stack output
} else {
logger.error(new Error(String(error)));
}
}
如果你通过了 error.message 相反,堆栈跟踪是没有的.
时间功能
是否启用或禁用颜色, 计时器行为是一致的 :
color: true• 有色计时器输出color: false• 纯定时器输出verboseTimer: true• 日志start持续时间输出前的信件
// Start a timer
logger.time("operation");
// ... some operations ...
// End the timer and log duration
logger.timeEnd("operation");
调试工具
日志提供了几种特定的调试方法:
// Check if debug mode is enabled
if (logger.isDebugEnabled()) {
// Perform debug-only operations
}
// Start a timer only when debug is enabled
logger.debugTime("debug-operation");
// ... some operations ...
// End the debug timer (only logs when debug is enabled)
logger.debugTimeEnd("debug-operation");
自定义颜色
对于浏览器和节点.js环境,颜色可以不同定制:
// Browser colors (CSS syntax)
const logger = new Logger("[my-app]", {
colors: {
INFO: "color: purple",
ERROR: "color: darkred",
WARN: "color: orange",
DEBUG: "color: cyan",
TIMER: "color: magenta",
},
});
// Node.js colors (ANSI codes)
const logger = new Logger("[my-app]", {
colors: {
INFO: "\x1b[35m", // Purple
ERROR: "\x1b[31m", // Red
WARN: "\x1b[33m", // Yellow
DEBUG: "\x1b[36m", // Cyan
TIMER: "\x1b[35m", // Magenta
},
});
实例
带有时间戳和颜色
const logger = new Logger("[my-app]", {
timestamp: true,
timestampFormat: "full",
});
logger.info("Application started");
// Output: [02/16/2024, 15:30:45] [my-app] Application started
带有调试信件
const logger = new Logger("[my-app]", { debug: true });
logger.debug("Configuration loaded:", { port: 3000 });
// Output: [my-app] Configuration loaded: { port: 3000 }
用计时器
const logger = new Logger("[my-app]", { verboseTimer: true });
logger.time("db-query");
// ... database operation ...
logger.timeEnd("db-query");
// Output: [my-app] db-query: 123.45ms
带有有条件调试计时器
const logger = new Logger("[my-app]", { debug: true });
// Only starts timer if debug is enabled
logger.debugTime("expensive-calculation");
// Some expensive operation
const result = performExpensiveCalculation();
// Only logs time if debug is enabled
logger.debugTimeEnd("expensive-calculation");