Ubuntu中Node.js日志文件位置在哪
导读:Ubuntu中Node.js日志文件的常见位置及查找方法 1. 无特殊配置:默认输出到控制台 若未在代码或启动命令中指定日志文件路径,Node.js应用默认会将日志(如console.log( 、console.error( 的输出)直接打...
Ubuntu中Node.js日志文件的常见位置及查找方法
1. 无特殊配置:默认输出到控制台
若未在代码或启动命令中指定日志文件路径,Node.js应用默认会将日志(如console.log()
、console.error()
的输出)直接打印到终端控制台,不会生成本地日志文件。此时需通过重定向将日志保存到文件(见下文“自定义日志路径”部分)。
2. 使用PM2进程管理器:默认路径为~/.pm2/logs/
若通过PM2管理Node.js应用(如pm2 start app.js
),日志会自动存储在用户主目录下的.pm2/logs/
目录中。文件名格式为:
< 应用名称> -out.log
:标准输出日志(包含console.log
等内容);< 应用名称> -err.log
:标准错误日志(包含console.error
等内容)。
例如,应用名为my-node-app
时,日志路径为~/.pm2/logs/my-node-app-out.log
和~/.pm2/logs/my-node-app-err.log
。
3. 自定义代码配置:取决于代码中的路径设置
若在代码中通过fs
模块或第三方日志库(如winston
、log4js
)配置了日志路径,日志会存储在指定的目录中。常见示例:
- 使用
fs
模块:
此时日志会存储在项目根目录的const fs = require('fs'); const logFilePath = './logs/app.log'; // 相对路径(项目根目录下的logs文件夹) const logStream = fs.createWriteStream(logFilePath, { flags: 'a' } ); global.console = new console.Console(logStream, logStream); console.log('This log is written to ./logs/app.log');
logs/app.log
文件中。 - 使用
winston
库:
日志会存储在const winston = require('winston'); const logger = winston.createLogger({ transports: [ new winston.transports.File({ filename: '/var/log/my-node-app/app.log' } ) // 绝对路径 ] } ); logger.info('This log is written to /var/log/my-node-app/app.log');
/var/log/my-node-app/app.log
中。
4. 系统服务日志:通过journalctl
查看
若将Node.js应用作为系统服务(如使用systemd
创建.service
文件)运行,日志会集成到Ubuntu系统日志中,可通过journalctl
命令查看。例如:
- 查看指定服务的日志:
其中journalctl -u my-nodejs-app -f # -f表示实时跟踪日志
my-nodejs-app
是服务的名称(需与.service
文件中的[Service]
部分Description
一致)。
5. 自定义命令行重定向:指定输出文件
启动应用时,可通过命令行将标准输出(stdout
)和标准错误(stderr
)重定向到指定文件。例如:
node app.js >
./logs/app.log 2>
&
1 &
>
:将标准输出重定向到./logs/app.log
;2> & 1
:将标准错误合并到标准输出;&
:让应用在后台运行。
此时日志会存储在项目根目录的logs/app.log
文件中。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Node.js日志文件位置在哪
本文地址: https://pptw.com/jishu/724021.html