【问题标题】:How to access a Node.js application log lauched through pm2如何访问通过 pm2 启动的 Node.js 应用程序日志
【发布时间】:2020-06-28 08:38:07
【问题描述】:

我一直在使用 Socket.IO、Express、MySql 和 https 开发一个 Node.js 应用程序,并且一切正常,直到我使用 pm2 将它“deamonized”。现在,我的套接字似乎不知何故没有响应,我想调试它。 问题是我似乎无法从这段代码中找到 console.log() 函数输出其文本的位置。

我想你想知道,我所有的 pm2 进程都在线,我可以从客户端刷新我的页面。但是服务器上应该有一个函数,当数据库发生某些事情而它没有发生时,它会在客户端触发一个事件。

能告诉我 consone.log() 的输出在哪里吗?

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    您可以使用pm2 logs 命令访问日志 http://pm2.keymetrics.io/docs/usage/log-management/

    【讨论】:

      【解决方案2】:

      问题在于,当您的服务器正在运行并且您使用时

      pm2 log
      

      所有日志都会显示,除了

      console.log()
      

      你所要做的就是代替 pm2 日志,运行

       pm2 logs
      

      注意日志中的“s”。希望这会有所帮助

      【讨论】:

        【解决方案3】:

        来自 PM2 文档:

        PM2 允许您轻松管理应用程序的日志。你可以 实时显示来自所有应用程序的日志,刷新 他们,并重新加载它们。也有不同的方法来配置如何 PM2 将处理您的日志(在不同的文件中分离,合并,与 时间戳...) 无需修改代码中的任何内容。

        http://pm2.keymetrics.io/docs/usage/log-management/

        还有其他问题:

        Make pm2 log to console

        【讨论】:

        • 我已经尝试过 pm2 flush 然后 pm2 记录 但是当我连接新客户端时,日志上什么也没有显示每次新客户端连接时,我都会调用一个 console.log() 函数。
        • 看来我又遇到了那个 EADDRINUSE 问题,所以我不得不杀死一个进程,然后只启动一个进程才不会出现 WebSocket 错误。之后 pm2 logs 终于向我展示了我的预期。问题出在其他地方。谢谢。
        猜你喜欢
        • 2016-12-10
        • 1970-01-01
        • 2020-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-02
        • 1970-01-01
        相关资源
        最近更新 更多