You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多个应用搭建可复用的中央日志包并实现调用?

如何为多个应用搭建中央日志包

我来分享一个简单高效的方案,通过创建名为my-loggers的可复用npm包,就能让多个应用共享统一的日志工具,具体步骤如下:

1. 创建可复用日志包 my-loggers

首先我们搭建这个核心的日志包,它基于bunyan实现,并且通过单例模式避免重复创建logger实例:

import bunyan = require('bunyan');
const loggers = {};

export const getLogger = function(name, config){
  // 如果已存在对应名称的logger,直接返回
  if(loggers[name]){
    return loggers[name];
  }
  // 不存在则创建并缓存
  return loggers[name] = bunyan.createLogger(config);
};

这个实现的好处是,同一个应用中多次调用getLogger获取同名实例时,只会初始化一次,避免资源浪费,同时也能保证日志配置的一致性。

2. 在业务应用中使用 my-loggers

完成包的开发后(记得先把它发布到你的私有npm仓库或者通过本地link调试),就可以在各个业务应用中使用了:

安装依赖

在应用根目录执行安装命令:

npm install -S my-loggers

调用日志工具

在应用代码中引入并使用:

import * as MyLoggers from 'my-loggers';
import config = require('../my-app-config');

// 根据业务模块名称获取logger实例,传入对应配置
const log = MyLoggers.getLogger('user-service', config.logger);

// 之后就可以正常使用日志方法了
log.info('用户服务启动成功');
log.error('用户登录失败', { error: err });

这样一来,所有应用都能使用统一的日志工具,后续如果需要调整日志逻辑(比如更换日志库、添加统一的日志格式),只需要修改my-loggers这一个包,所有依赖的应用更新包版本就能同步生效,非常便于维护。

内容的提问来源于stack exchange,提问作者user7898461

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:35:49