NodeJS 如何在NextJS中记录所有的路由

lstz6jyr  于 11个月前  发布在  Node.js
关注(0)|答案(3)|浏览(160)

我对NextJS非常陌生-我目前有一个非常简单的应用程序,它提供少数页面,如果路由不存在,则返回404页面。
我想为每个请求获取日志记录,包括不存在的页面并返回404页面。我正在Docker容器中运行应用程序,或者我想将日志写入标准输出,但在Chrome控制台输出中不可见。
实现这一点的最佳方法是什么?

ewm0tg9j

ewm0tg9j1#

这个用例听起来像一个访问日志设置。
最好的方法是设置一个像nginx这样的反向代理,这样它就可以在你的docker容器中创建日志。
如果你不想这样做,你可以按照这两个步骤
1.设置一个自定义服务器来获取请求https://nextjs.org/docs/advanced-features/custom-server
1.使用类似https://www.npmjs.com/package/next-bunyan的东西写出日志
如果您希望在访问应用程序时记录来自前端的访问-您可以使用类似Google Analytics帐户的东西来捕获客户端和服务器端事件。

sqyvllje

sqyvllje2#

如果你已经在AWS上,并且你的nextJS服务器运行在CloudFront之后,你可以很容易地为相应的发行版启用请求日志记录,并在不做任何nextJS更改的情况下“免费”获得这项功能。这也是最高性能的选择。

pvabu6sv

pvabu6sv3#

我最终使用了一个代理,它工作得很好。
按照下面的步骤让它在Linux上工作。

安装Caddy

sudo snap install caddy --edge

字符串

在您的项目/仓库目录中创建一个Caddyfile,内容如下:

:3000 {
    reverse_proxy localhost:3001

    log {
        output stdout
        format console
    }
}

运行代理服务器:

caddy run

假设您的NodeJS服务器运行在3001端口:

yarn dev --port 3001

相关问题