# @dyihoon90/glogging 中文文档

规范地址：https://npmcn.com/package/%40dyihoon90/glogging/

版本：4\.0\.5
npm 元数据更新时间：2026-06-02T08:38:27.842Z
中文译文更新时间：2026-11-13T02:08:29.662Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dyihoon90/glogging
原文对照：https://npmcn.com/package/%40dyihoon90/glogging/?lang=original
项目主页：https://github.com/dyihoon90/glogging#readme
源码仓库：https://github.com/dyihoon90/glogging

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：99.8 kB，37 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：7 个
- 首次发布：2020-09-24T04:29:35.292Z
- 最新版本发布：2026-06-02T08:38:27.583Z
- 近 30 天下载量：4936（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：54（近 12 个月 4 个）

## 中文简介

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

## 安装

```sh
npm install @dyihoon90/glogging
```

也可以使用：`pnpm add @dyihoon90/glogging`、`yarn add @dyihoon90/glogging`、`bun add @dyihoon90/glogging`

## README

![Release pipeline](https://github.com/dyihoon90/glogging/workflows/Release%20Package%20to%20NPM/badge.svg) ![CI pipeline](https://github.com/dyihoon90/glogging/workflows/Run%20CI%20per%20push%20to%20Github%20repo/badge.svg)

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

## 目录

-   [快捷请求和交易的审计记录员](https://npmcn.com/package/%40dyihoon90/glogging/#readme-audit-logger-for-express-requests-and-transactions)
    -   [目录](https://npmcn.com/package/%40dyihoon90/glogging/#readme-table-of-content)
        -   [安装](https://npmcn.com/package/%40dyihoon90/glogging/#readme-installation)
        -   [说明](https://npmcn.com/package/%40dyihoon90/glogging/#readme-description)
    -   [GLogger 读取器](https://npmcn.com/package/%40dyihoon90/glogging/#readme-glogger)
        -   [构造器](https://npmcn.com/package/%40dyihoon90/glogging/#readme-constructor)
        -   [覆盖默认配置](https://npmcn.com/package/%40dyihoon90/glogging/#readme-override-default-configs)
        -   [实例方法](https://npmcn.com/package/%40dyihoon90/glogging/#readme-instance-methods)
        -   [实例属性](https://npmcn.com/package/%40dyihoon90/glogging/#readme-instance-properties)
    -   [表示中间软件](https://npmcn.com/package/%40dyihoon90/glogging/#readme-express-middlewares)
    -   [Express服务的类、 方法与函数装饰器( Express/ Koa 服务器在框外的工作)](https://npmcn.com/package/%40dyihoon90/glogging/#readme-class-method--function-decorators-for-express-services-works-out-of-the-box-for-expresskoa-servers)
        -   [目的](https://npmcn.com/package/%40dyihoon90/glogging/#readme-purpose)
        -   [元数据](https://npmcn.com/package/%40dyihoon90/glogging/#readme-metadata)
        -   [装饰者](https://npmcn.com/package/%40dyihoon90/glogging/#readme-decorators)
    -   [实例](https://npmcn.com/package/%40dyihoon90/glogging/#readme-examples)
    -   [解决问题](https://npmcn.com/package/%40dyihoon90/glogging/#readme-troubleshooting)

### 安装

`npm i @dyihoon90/glogging`

### 说明

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

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

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

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

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

* * *

## GLogger 读取器

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

### 构造器

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

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

| 模式 | 说明 |
| --- | --- |
| 当地 | 
-   默认有控制台的传输 .
-   要调试的日志级别

 |
| 大卫 | 

-   默认有控制台的传输 .
-   日志级别至信息

 |
| 生产 | 

-   默认没有传输。 使用 glagger. add Transport 来添加 Winton 日志传输 .
-   日志级别至信息

 |

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

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

### 覆盖默认配置

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

* * *

### 实例方法

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

### 实例属性

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

* * *

## 表示中间软件

这个库输出以下的快取中件. 见 [中间dlware 示例](https://npmcn.com/package/%40dyihoon90/glogging/examples/middleware.example.ts) 如何将这些中间软件放入您的快递服务器

| 中间软件 | 目的 |
| --- | --- |
| 增强交易和时间的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 是什么？

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 和提交记录判断。

