如何使用Forever将Node.js应用的错误与警告日志分文件夹存储?
用Forever分离Node.js应用的错误日志与警告日志
嘿,这事儿好办!Forever本身就支持单独指定错误日志和标准输出日志(你的警告日志一般会输出到标准流里)的存储路径,刚好能实现你把它们分到独立文件夹的需求。下面分两种常用方式给你讲:
一、启动时直接通过命令行参数指定
首先你得先创建好存放日志的目标文件夹,Forever不会自动帮你创建目录,所以先执行命令:
mkdir -p ./logs/errors ./logs/warnings
这里我假设你想把日志存在当前项目根目录下的logs文件夹里,里面再分errors和warnings两个子文件夹,你可以根据自己的需求修改路径。
然后启动应用的时候,用-e(或--errFile)指定错误日志的路径,用-o(或--outFile)指定标准输出(包含警告)的路径:
forever start -e ./logs/errors/app-err.log -o ./logs/warnings/app-out.log your-app.js
这样一来,应用运行时产生的错误信息会被写入./logs/errors/app-err.log,而警告和其他标准输出内容会被写入./logs/warnings/app-out.log,完美分开存储。
二、使用Forever配置文件(适合频繁启动的场景)
如果不想每次启动都敲一大串参数,可以创建一个Forever的配置文件,把日志路径等配置写进去。比如创建一个forever-config.json文件,内容如下:
{ "append": true, // 设置为true表示日志追加模式,而不是覆盖 "errFile": "./logs/errors/app-err.log", "outFile": "./logs/warnings/app-out.log", "script": "your-app.js" // 你的Node.js应用入口文件 }
之后启动应用只需要执行:
forever start forever-config.json
这样就会按照配置文件里的路径来存储日志,非常方便。
小提示:如果你的警告日志是通过console.warn()输出的,它默认会被打到标准错误流(stderr)里,这时候你可能需要调整应用的日志输出逻辑,或者用额外的日志工具(比如winston、pino)来更精细地控制日志分类,但如果只是想简单分离默认的错误和标准输出,上面的方法完全够用。
内容的提问来源于stack exchange,提问作者Sudhanshu Gaur
相关产品推荐
相关产品推荐

