gpt4 book ai didi

node.js - 在 Loopback 4 中实现自定义日志记录

转载 作者:行者123 更新时间:2023-12-05 03:01:18 25 4
gpt4 key购买 nike

Winston、Pino 或 Bunyan 可以用于登录 Loopback4 吗?如果是这样,在 Loopback4 中实现它们的基本步骤是什么?

在查看本教程时,我能够使用 Express 让 Winston 工作: https://www.digitalocean.com/community/tutorials/how-to-use-winston-to-log-node-js-applications

Winston 和 Brunyan 有 Loopback 模块。但是,我的印象是(因为上次更新已经超过 10 个月了)它们一定是针对旧版本的 Loopback(因为 v4 于 10 月 18 日发布)?

winston - https://www.npmjs.com/package/loopback-component-winston

布伦扬 - https://www.npmjs.com/package/loopback-component-bunyan

最佳答案

可以在 Loopback 4 中实现自定义日志记录,这样做与 Express 应该没有太大区别。我已经对 winston 进行了试验,因此,我会详细说明相同的内容,但这也应该可以使用 bunyan 来实现。

首先,您可以在项目的根目录下创建一个 utils 文件夹来保存您的自定义记录器。使用 LB4 CLI 构建的应用程序采用典型结构并带有 utils 文件夹,它看起来如下所示:

.
|
|-- public
|-- src
|-- utils
| |-- logger
| |-- index.js <-- custom logger can be defined here.
|-- node_modules
|-- index.js
|--
.

我正在使用示例如 winston's github repo 中所述用于定义记录器:

// utils/logger/index.js

const winston = require('winston');

const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [
//
// - Write to all logs with level `info` and below to `combined.log`
// - Write all logs error (and below) to `error.log`.
//
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});

module.exports = logger;

您现在可以通过在您的应用程序中“导入”记录器来开始使用它。对于根文件夹中的 index.jsimport 看起来像:

// index.js

const logger = require('./utils/logger');

对于之前定义的记录器,以下语句会将 I am logged. 记录到名为 combined.log 的文件中:

logger.info('I am logged.');

这应该可以帮助您入门。

附言我确信可以改进答案(和方法),因此非常愿意接受任何有用的建议。

关于node.js - 在 Loopback 4 中实现自定义日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com