UNPKG

@hestjs/logger

Version:

HestJS Logger - A powerful logging solution based on Pino

110 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.errorFormatter = exports.logFormatter = exports.bindingsFormatter = exports.timestampFormatter = exports.levelFormatter = void 0; exports.getDefaultFormatters = getDefaultFormatters; exports.createFormatter = createFormatter; /** * 日志级别格式化器 - 简洁版本,只保留数字级别 */ const levelFormatter = (_label, number) => { return { level: number, }; // return { // level: number, // levelLabel: label.toUpperCase(), // }; }; exports.levelFormatter = levelFormatter; /** * 时间戳格式化器 */ const timestampFormatter = () => { return { timestamp: new Date().toISOString(), }; }; exports.timestampFormatter = timestampFormatter; /** * 绑定数据格式化器 - 默认返回空对象,保持简洁 */ const bindingsFormatter = (_bindings) => { // 默认不添加任何额外信息,保持日志简洁 return {}; // const { pid, hostname, ...rest } = bindings; // return { // service: 'HestJS', // version: process.env.npm_package_version || '0.1.0', // environment: process.env.NODE_ENV || 'development', // pid, // hostname, // ...rest, // }; }; exports.bindingsFormatter = bindingsFormatter; /** * 日志对象格式化器 - 标准化日志结构 */ const logFormatter = (object) => { const { level, time, msg, ...rest } = object; // 重组日志结构,确保关键字段在前 return { "@timestamp": time, level, message: msg, ...rest, }; }; exports.logFormatter = logFormatter; /** * 错误格式化器 - 专门处理错误对象 */ const errorFormatter = (object) => { if (object.err || object.error) { const error = object.err || object.error; return { ...object, error: { name: error.name, message: error.message, stack: error.stack, ...(error.status && { status: error.status }), ...(error.statusCode && { statusCode: error.statusCode }), }, }; } return object; }; exports.errorFormatter = errorFormatter; /** * 获取默认格式化器 */ function getDefaultFormatters() { return { level: exports.levelFormatter, bindings: exports.bindingsFormatter, log: (object) => { // 组合多个格式化器 const formatted = (0, exports.logFormatter)(object); return (0, exports.errorFormatter)(formatted); }, }; } /** * 创建自定义格式化器 */ function createFormatter(fn) { return (object) => { try { return fn(object); } catch (error) { // 如果格式化失败,返回原始对象并添加错误信息 return { ...object, formatError: error instanceof Error ? error.message : "Unknown formatting error", }; } }; } //# sourceMappingURL=formatters.js.map