我对NextJS非常陌生-我目前有一个非常简单的应用程序,它提供少数页面,如果路由不存在,则返回404页面。我想为每个请求获取日志记录,包括不存在的页面并返回404页面。我正在Docker容器中运行应用程序,或者我想将日志写入标准输出,但在Chrome控制台输出中不可见。实现这一点的最佳方法是什么?
ewm0tg9j1#
这个用例听起来像一个访问日志设置。最好的方法是设置一个像nginx这样的反向代理,这样它就可以在你的docker容器中创建日志。如果你不想这样做,你可以按照这两个步骤1.设置一个自定义服务器来获取请求https://nextjs.org/docs/advanced-features/custom-server1.使用类似https://www.npmjs.com/package/next-bunyan的东西写出日志如果您希望在访问应用程序时记录来自前端的访问-您可以使用类似Google Analytics帐户的东西来捕获客户端和服务器端事件。
sqyvllje2#
如果你已经在AWS上,并且你的nextJS服务器运行在CloudFront之后,你可以很容易地为相应的发行版启用请求日志记录,并在不做任何nextJS更改的情况下“免费”获得这项功能。这也是最高性能的选择。
AWS
CloudFront
pvabu6sv3#
我最终使用了一个代理,它工作得很好。按照下面的步骤让它在Linux上工作。
安装Caddy:
Caddy
sudo snap install caddy --edge
字符串
在您的项目/仓库目录中创建一个Caddyfile,内容如下:
Caddyfile
:3000 { reverse_proxy localhost:3001 log { output stdout format console } }
型
运行代理服务器:
caddy run
假设您的NodeJS服务器运行在3001端口:
3001
yarn dev --port 3001
3条答案
按热度按时间ewm0tg9j1#
这个用例听起来像一个访问日志设置。
最好的方法是设置一个像nginx这样的反向代理,这样它就可以在你的docker容器中创建日志。
如果你不想这样做,你可以按照这两个步骤
1.设置一个自定义服务器来获取请求https://nextjs.org/docs/advanced-features/custom-server
1.使用类似https://www.npmjs.com/package/next-bunyan的东西写出日志
如果您希望在访问应用程序时记录来自前端的访问-您可以使用类似Google Analytics帐户的东西来捕获客户端和服务器端事件。
sqyvllje2#
如果你已经在
AWS
上,并且你的nextJS服务器运行在CloudFront
之后,你可以很容易地为相应的发行版启用请求日志记录,并在不做任何nextJS更改的情况下“免费”获得这项功能。这也是最高性能的选择。pvabu6sv3#
我最终使用了一个代理,它工作得很好。
按照下面的步骤让它在Linux上工作。
安装
Caddy
:字符串
在您的项目/仓库目录中创建一个
Caddyfile
,内容如下:型
运行代理服务器:
型
假设您的NodeJS服务器运行在
3001
端口:型