生产模式下Nextjs服务器端日志记录

问题描述 投票:0回答:1

我有一个使用服务器端渲染的 nextjs 14 项目,我在服务器组件中添加了 console.log 和 Winston 记录器,并且在运行 npm run build 时都会显示这两个日志。 但是,当我运行 npm run build 时,日志会出来,但是当我运行 npm run start 时,不会显示日志。似乎日志只出现在开发模式和构建时间。

我的 Linux 服务器也是如此,在我使用 nginx 和 pm2 部署项目后,我在 pm2 日志中看不到我的控制台日志,并且 Winston 日志未写入文件中。

请帮忙解决这个问题,并让我知道为什么日志没有在生产运行时显示。

reactjs nginx next.js server-side-rendering pm2
1个回答
0
投票

您可能正在使用静态渲染而不是动态渲染。您可以使用以下选项将服务器组件声明为动态:

  1. 使用

    cookies()
    headers()
    。在服务器组件中使用这些将在请求时选择整个路由进行动态渲染。

  2. 在服务器组件页面中使用

    searchParams
    属性将在请求时选择整个路由进行动态渲染。

  3. 根据所需的范围,在布局或页面组件内提供具有值 force-dynamic

    路线段配置

请记住,在应用程序路由器内部,您的服务器组件仅在默认情况下在构建时呈现并保存为静态 html,而不是像在页面路由器内部使用 getServerSideProps 时那样根据请求进行编译。

© www.soinside.com 2019 - 2024. All rights reserved.