我正在使用 TypeScript 开发一个 Next.js 项目,该项目在 monorepo 中构建,并且我希望集成 Pino 来进行日志记录。我的目标是在客户端和服务器端实现日志记录,但尚未找到有关此特定设置的最佳实践的太多文档。
有人可以提供有关如何在 Next.js (TS) monorepo 中正确设置 Pino 记录器以进行全面日志记录的指导或示例吗?任何关于配置 Pino 以有效记录服务器端操作之外的客户端活动的建议都将特别有价值。
这是我的 pino 配置
`import pino from 'pino';
import GraylogStream from './graylogStream';
const graylogHost = 'host'
const graylogPort = 12201;
const logger = pino(
{
level: process.env.LOG_LEVEL || 'info',
serializers: {
err: pino.stdSerializers.err,
req: pino.stdSerializers.req,
res: pino.stdSerializers.res
}
},
new GraylogStream(graylogHost, graylogPort)
);`
我也在这个主题上苦苦挣扎,我正在研究 Next js 14.1 App Router,这就是我实现 Pino 的方式
安装 Pino 和 Pino-pretty
创建Pino.ts文件并添加以下代码
const pino = require('pino');
import { Logger } from 'pino';
export const logger:Logger = pino({
transport: {
target: 'pino-pretty',
options: {
colorize: true,
},
},
level: process.env.PINO_LOG_LEVEL || 'info',
redact: [], // prevent logging of sensitive data
});
在你的 next.config.js 中添加这个
experimental:{
serverComponentsExternalPackages: ['pino', 'pino-pretty']
},
您还可以创建自定义级别