gpt4 book ai didi

perl - 我在哪里可以找到使用 Nginx、Starman、Plack 和 Catalyst 的应用程序运行时错误?

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

我已经成功地使用 Plack 在我的开发机器上为我的 Catalyst 应用程序提供服务。 + Starman ,使用我在 Dave Rolsky 的 Silki 中找到的守护程序脚本分布。

然后我将 nginx 设置为反向代理到我的 Starman 服务器,并为 nginx 服务的静态目录设置别名。到目前为止,一切都很好。但是,我不知道我的应用程序 STDERR 应该登录到哪里。它没有到达 nginx(我想这是有道理的),但我找不到太多关于 Starman 可能在哪里记录它的文档——如果在任何地方。我确实看过 Plack 的中间件模块,但只看到了访问日志的选项。

有人可以帮我吗?

最佳答案

它无处可去。 Catalyst::Log 正在向 STDERR 发送数据,而 init 脚本正在向 /dev/null 发送 STDERR .

你有几个基本的选择:

  1. Catalyst::Log 替换为 Catalyst::Log::Log4perl 之类的内容或者只是 Catalyst::Log 的一个子类,并重写了 _send_to_log - 任何一个都允许您将日志输出发送到 STDERR 以外的地方。

  2. 编写一些在 PSGI 级别运行的代码来管理日志文件并重新打开 STDERR。我试过这个,不是很愉快。日志文件比看起来更难。

  3. 改用 FastCGI,您将获得一个错误流,将日志输出发送回网络服务器。您仍然可以通过 Plack::Handler::FCGI 使用 Plack/Plack::Handler::FCGI::Engine (我推荐后者,因为 FCGI::Engine 代码比 FCGI.pm 更新更好)。

关于perl - 我在哪里可以找到使用 Nginx、Starman、Plack 和 Catalyst 的应用程序运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719935/

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