@hestjs/logger
Version:
HestJS Logger - A powerful logging solution based on Pino
110 lines • 3.1 kB
JavaScript
;
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