首页 > 解决方案 > 更改在 GCE 上运行的 node.js 的日志目标

问题描述

我正在使用 rc.local 开始我的节点脚本:

node .> "/log_file_$(date +"%H:%M:%S_%m_%d_%Y").txt"

它工作正常 - 但现在一旦日志大小增加 - 我需要每 12/24 小时在服务器上创建一个新日志;无需重新启动服务器。

有什么简单的方法可以更改节点应用程序输出目标吗?

我不想为此使用任何库,因为我需要记录所有消息,包括错误、警告,而不仅仅是 console.log。

谢谢你的帮助。

标签: node.jsubuntugoogle-cloud-platform

解决方案


有很多选择,我将提供两个:

1. 堆栈驱动程序

将您的日志流式传输到Stackdriver,它是 Google Cloud 的一部分,并且根本不将它们存储在您的服务器上。在您的 node.js 应用程序中,您可以设置 Winston 并为 Stackdriver 使用 Winston 传输。然后你就可以在那里进行分析和查询,不用担心存储空间耗尽。

2.logrotate

如果要手动处理,可以配置logrotate。它将 gzip 较旧的日志,以便它们消耗更少的磁盘空间。这是一种较旧的“云前”做事方式。


推荐阅读