gpt4 book ai didi

node.js - 将 Node.js 日志输出到文件系统

转载 作者:搜寻专家 更新时间:2023-11-01 00:38:09 26 4
gpt4 key购买 nike

我有一个 Splunk 转发器管理我的生产服务器中的日志,所以我真的只需要将我的 Node 应用程序的输出放入 Splunk 正在监视的文件中。在生产中简单地执行以下操作的缺点是什么:

node server.js &> output.log

反对使用某种日志记录模块处理 Node 进程内的日志输出...

最佳答案

checkout supervisord 是一个日志记录和保姆工具,它成为像 Node 服务器这样的进程的父进程,它可以处理将标准输出和标准错误重定向到您选择的文件......此外它会嗅探异常结束并抛出 child 需要时再处理

这是一个典型的配置文件:/etc/supervisor/conf.d/supervisord.conf

[supervisord]
nodaemon=true
logfile=GKE_MASTER_LOGDIR/supervisord_nodejs_GKE_FLAVOR_USER.log
pidfile=GKE_MASTER_LOGDIR/supervisord_nodejs_GKE_FLAVOR_USER.pid
stdout_logfile_maxbytes = 1MB
stderr_logfile_maxbytes = 1MB
logfile_backups = 50
# loglevel = debug



[program:nodejs]
command=/tmp/boot_nodejs.sh %(ENV_MONGO_SERVICE_HOST)s %(ENV_MONGO_SERVICE_PORT)s
stdout_logfile = GKE_MASTER_LOGDIR/nodejs_GKE_FLAVOR_USER_stdout.log
stderr_logfile = GKE_MASTER_LOGDIR/nodejs_GKE_FLAVOR_USER_stderr.log
stdout_logfile_maxbytes = 1MB
stderr_logfile_maxbytes = 1MB
logfile_backups = 50
autostart = True
autorestart = True
# user = GKE_NON_ROOT_USER

在我的例子中,这一切都发生在 Docker 容器内,所以这里是我的 Dockerfile 的一个片段,它启动 supervisord,它又启动 nodejs,这样做将 stdout/err 重定向到日志文件,supervisord 根据空间和/或时间轮换...使用 Docker 与使用 supervisord 是正交的,所以 YMMV

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf" ]

为了下面的完整性,我包括上面引用的 boot_nodejs.sh

#!/bin/bash

given_mongo_service_host=$1
given_mongo_service_port=$2

current_dir=$(dirname "${BASH_SOURCE}")

current_timestamp="timestamp "$(date '+%Y%m%d_%H%M%S_%Z')

echo
echo "______________ fresh nodejs server bounce ______________ $current_timestamp"
echo

# ............... now output same to standard error so its log gets the hat tip

(>&2 echo )
(>&2 echo "______________ fresh nodejs server bounce ______________ $current_timestamp" )
(>&2 echo )


# ................

export MONGO_URL=mongodb://$given_mongo_service_host:$given_mongo_service_port

type node

node main.js

关于node.js - 将 Node.js 日志输出到文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380186/

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