@dyihoon90/glogging

中文文档
4.0.5发布于 2026/06/02ISCTypeScriptCommonJS构建来源已验证近 30 天下载 4936

HTTP 请求使用 Winton 进行快捷的日志中间软件和交易功能装饰

中文使用文档
文档目录15 节
  1. 目录
  2. 安装
  3. 说明
  4. GLogger 读取器
  5. 构造器
  6. 覆盖默认配置
  7. 实例方法
  8. 实例属性
  9. 表示中间软件
  10. Express服务的类、 方法与函数装饰器( Express/ Koa 服务器在框外的工作)
  11. 目的
  12. 元数据
  13. 装饰者
  14. 实例
  15. 解决问题

Release pipeline CI pipeline

快捷请求和交易的审计记录员

目录

安装

npm i @dyihoon90/glogging

说明

光荣是大众的包裹 winston 伐木图书馆.

该库为下列使用案例提供方便方法:

  1. 结构化伐木
  2. 使用 Express 中间软件登录请求和响应
  3. 在函数、类和类方法中使用装饰器进行日志

通过在 Express 服务器中使用此库,您可以得到:

福利用吗?
在SG背景下编辑敏感数据自动编辑 NRIC 敏感信息( S)
标准化日志格式标准 logger.info()
Express服务器的标准请求和响应记录添加 光滑快取中间软件 将自动生成对收到的请求和发出的答复的日志
对函数、类、类方法进行无侵扰性记录( C)使用类方法装饰函数( C) 装饰器 将登录函数引用。 也可以登录函数返回的内容
使用 Express 服务器中的 Correlate 函数引用 trxId使用 enhanceReqWithTransactionAndTime 内 中间软件 应添加 trxId 请求.
传递请求对象为 第一个参数 在所有已装饰的函数中 & Glogger 装饰器将取取请求的上下文, 如 trxId。 。 。 .
使用微服务对请求进行校正 trxId使用 enhanceReqWithTransactionAndTime 内 中间软件 应添加 trxId 请求.
通过这个 trxId 到其它使用 Glogger 的 Express 服务器, 它们会输出相同的日志 w trxId

GLogger 读取器

构造一个日志实例 。 和Winton做的一样.

构造器

const logger = new GLogger({ loggingMode: LoggingMode.LOCAL });

构建日志实例时, 不同环境有3种模式

模式说明
当地
  • 默认有控制台的传输 .
  • 要调试的日志级别
大卫
  • 默认有控制台的传输 .
  • 日志级别至信息
生产
  • 默认没有传输。 使用 glagger. add Transport 来添加 Winton 日志传输 .
  • 日志级别至信息

要覆盖上面每个模式的默认行为, 您可以使用 overrideDefault

const logger = new GLogger({
  loggingMode: LoggingMode.LOCAL,
  overrideDefault: { alwaysWriteToConsole: true, consoleLogSectionSeparator: '' }
});

覆盖默认配置

配置目的
总是写到控制台无论环境如何,总是给控制台写信。 对AWS Lambda 有用
控制台日志区域分隔符覆盖控制台日志的默认区域分隔符字符 。 默认为新行 “\n” 。 对 AWS Lambda 有用

实例方法

方法目的
调试创建级别调试的日志对象
资讯创建级别信息的日志对象
警告( e)创建级别警告的日志对象
错误创建级别错误的日志对象
切换VerboseModeOn切换调试模式以查看正在发送到以上日志方法的内容
添加后勤运输添加一个 winton 日志传输来传输日志对象

实例属性

财产目的
胜顿显示下方的 Winton 日志对象

表示中间软件

这个库输出以下的快取中件. 见 中间dlware 示例 如何将这些中间软件放入您的快递服务器

中间软件目的
增强交易和时间的Req用 req.reqStartTime InEpochMillis & req.uuid 增强请求(如果 req.uuid 不存在)
反应错误厂家创建错误日志中间软件。 记录器中间软件发生错误 logger.warn 当它从上一个中间软件收到错误对象时
响应制造成功日志的中间软件。 成功日志中间软件 logger.info 当响应状态代码 < 400

Express Miderware将登录您的Express服务器所有收到的请求和发出的响应,其元数据如下:

元数据全名这是什么?示例
trxId 函数交易编号随机生成的 uuidv4 在 Express 请求中添加了 enhanceReqWithTransactionAndTime 中间软件。 如果使用多个微服务, 可以通过ID来跟踪请求"e6c0ea38-f459-4f84-a9b6-873255e95896"(中文(简体) )
trx 模块交易模块交易模块"用户"
trx Name交易名称这将是装饰函数的名称用户列表
文件Name文件名称文件名称“服务/用户.服务.ts”
用户键用户键这是用户的JWT. 您需要手动将已解码的 JWT 设置在 Express 请求的“ 用户” 属性下 .{ "iss": "issuer", "sub": "subject", "aud": "audience", "jti": "tokenid", "exp": 123, "iat": 456}
时间 :以毫秒计的时间请求从收到请求到发出答复的时间61877 (英语)
tx 状态交易状况交易成功是由成功执行或返回已解约的函数决定的。 交易失败是定义函数丢出或返回被拒绝的许诺."失败"/"FAILURE"
额外信息.url網址完整 URL 路径'/列表?类型 [] = leave"
额外信息.方法方法HTTP 方法"GET" (GET) (英语)
新增信息. 结果结果返回函数的结果 。 只有选项才登录 。 toogResult 设置为 true选项。 从已登录结果中添加对象属性以编辑的属性{ aPublicValue: 'OK', 'aSecretValue': '[REDACTED]'
额外信息. erroor错误函数所抛出的错误, 只当状态为“ FAILURE ” 时新的错误( 错误 ) ”

Express服务的类、 方法与函数装饰器( Express/ Koa 服务器在框外的工作)

目的

光滑装饰器会为应用程序中的函数提供标准化的日志.

例如, 您的一条路由引用了一个函数, 该函数会调用您 DB 中的某个项, 然后返回这些系统的结果 .

您可以装饰让 DB 调用该函数获取丰富视图的函数引用, 包括您用户调用哪个 Express 路由来引用此函数, 交易ID, 请求用户的一些细节( 如果在请求中可用), 以及结果/ errors

在 Express / Koa 服务器中用于装饰功能的框外工作 .


元数据

正在登录的所有功能必须包含 IExpressRequest 对象作为第一个参数,即使函数本身不需要它.

你需要使用这个 enhanceReqWithTransactionAndTime 上一个 trxId 打开 timeTakenInMillis 工作的时候.

装饰器将使用下列元数据登录功能:

元数据全名这是什么?示例
trxId 函数交易编号随机生成的 uuidv4 在 Express 请求中添加了 enhanceReqWithTransactionAndTime 中间软件。 如果使用多个微服务, 可以通过ID来跟踪请求"e6c0ea38-f459-4f84-a9b6-873255e95896"(中文(简体) )
trx 模块交易模块交易模块"用户"
trx Name交易名称这将是装饰函数的名称用户列表
文件Name文件名称文件名称“服务/用户.服务.ts”
用户键用户键这是用户的JWT. 您需要手动将已解码的 JWT 设置在 Express 请求的“ 用户” 属性下 .{ "iss": "issuer", "sub": "subject", "aud": "audience", "jti": "tokenid", "exp": 123, "iat": 456}
时间 :以毫秒计的时间请求从收到请求到发出答复的时间61877 (英语)
tx 状态交易状况交易成功是由成功执行或返回已解约的函数决定的。 交易失败是定义函数丢出或返回被拒绝的许诺."失败"/"FAILURE"
额外信息.url網址完整 URL 路径'/列表?类型 [] = leave"
额外信息.方法方法HTTP 方法"GET" (GET) (英语)
新增信息. 结果结果返回函数的结果 。 只有选项才登录 。 toogResult 设置为 true选项。 从已登录结果中添加对象属性以编辑的属性{ aPublicValue: 'OK', 'aSecretValue': '[REDACTED]'
额外信息. erroor错误函数所抛出的错误, 只当状态为“ FAILURE ” 时新的错误( 错误 ) ”

装饰者

光滑装饰器允许用户以标准化方式登录函数和类方法引用 w/o 丢弃 logger.info() 整个功能。 这让你的代码更干净,更容易读取.

此库输出以下装饰器 .

装饰厂目的
日志分类装饰除此之外的所有类方法 constructor
逻辑方法装饰类方法
日志函数装饰原始函数

以上均为装饰厂. 为了创建装饰器,它们采用以下参数:

参数解释需要吗?示例
日志a GLogger 实例所需经费新建 GLogger ()
元数据元数据,包括交易类别、交易模块、可选文件名( c)所需经费
元数据.trx 类别交易类别所需经费TransactionCategory.TRANS
元数据.trxModule交易模块所需经费"用户"
选项可选选项参数选项
选项.toLogResult是否记录已装饰函数的返回值。 默认为假.选项true编号 :false
选项.toLog SuccessTxn是否记录装饰函数的成功。 默认为真.选项true编号 :false
选项. redacted Propertys若为 options.toLogResult 设置为正则,使用此数组获取函数返回值的属性。 既适用于有嵌入特性的物体,也适用于阵列内部的物体。 也可以通过整数来编辑数组中的特定项目选项['我的秘密财产',0]

实例

参见实例文件夹供使用 .

或者你可以复制这个 repo 并运行:

  • npm i 这么说吧,
  • npm run example 用于基准日志和装饰演示
  • npm run example-server 中间软件演示

解决问题

假设决议
获取“ ” 交易ID所有正在登录的函数必须包含在请求对象中 IExpressRequest 作为其第一个参数,即使函数本身不需要它.

版本与发布记录

@dyihoon90/glogging 共发布 54 个版本,首次发布于 2020/09/24;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.0.5latest2026/06/025 个月前
4.0.42026/06/025 个月前
4.0.32026/04/216 个月前
4.0.22026/04/146 个月前
4.0.02025/02/211.7 年前
3.0.8-beta.02025/02/211.7 年前

关于 @dyihoon90/glogging 的常见问题

@dyihoon90/glogging 是什么?

HTTP 请求使用 Winton 进行快捷的日志中间软件和交易功能装饰

如何安装 @dyihoon90/glogging?

在项目目录运行 npm install @dyihoon90/glogging,或使用 pnpm add / yarn add / bun add。

@dyihoon90/glogging 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dyihoon90/glogging 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@dyihoon90/glogging 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dyihoon90/glogging 可以商用吗?

@dyihoon90/glogging 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dyihoon90/glogging 的下载量有多少?

根据 npm 官方下载统计,@dyihoon90/glogging 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,936 次,日均约 165 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dyihoon90/glogging 还在维护吗?

最新版本 4.0.5 发布于 2026/06/02(5 个月前);至今共发布 54 个版本,其中过去 12 个月发布了 4 个;首次发布于 2020/09/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。