在Debian系统中,JS日志的位置取决于应用类型(前端/后端)和配置:
/var/log/目录下(如/var/log/syslog、/var/log/nodejs/error.log);若使用Apache/Nginx作为Web服务器,需检查/var/log/apache2/error.log或/var/log/nginx/error.log。logs/文件夹(如app/logs/app.log),或在项目配置文件(如config.js)中指定的路径。使用命令行工具快速查看和筛选日志内容:
tail -f /var/log/your-js-app.log实时跟踪日志文件的最新条目(如Node.js应用的错误日志)。grep命令筛选特定错误(如sudo grep "ERROR" /var/log/syslog查找系统日志中的JS错误,或grep "SyntaxError" /var/log/your-js-app.log查找语法错误)。jq工具解析(如cat app.log | jq '.message'提取错误消息)。重点关注日志中的错误级别和堆栈跟踪:
ERROR(严重错误,如应用崩溃)、WARN(潜在问题,如依赖过时)、INFO(正常运行状态,如服务启动)、DEBUG(详细调试信息,如变量值)等级别,优先处理ERROR和FATAL级别日志。at script.js:42:23)会指向具体代码行,帮助快速定位问题(如Uncaught TypeError: Cannot read property 'length' of undefined表示尝试访问未定义变量的length属性)。若JS为前端代码(如网页中的JavaScript),使用浏览器开发者工具调试:
F12或右键选择“检查”。F10下一步,F11进入函数),观察变量值变化。若JS为后端代码(如Node.js应用),使用以下工具调试:
node inspect app.js启动调试模式,通过cont(继续)、next(下一步)、step(进入函数)等命令控制执行流程。--inspect或--inspect-brk标志(如node --inspect-brk app.js),然后在Chrome中访问chrome://inspect,点击“为Node打开专用DevTools”进行可视化调试。.vscode/launch.json文件,配置调试任务(如{ "type": "node", "request": "launch", "name": "Debug App", "program": "${workspaceFolder}/app.js" }),按F5启动调试会话,支持断点、变量监视等功能。避免直接使用console.log(),推荐使用专业日志库(如winston、pino)提升日志管理效率:
logger.level = 'debug'设置日志级别,开发环境用debug(输出详细信息),生产环境用error(仅输出关键错误)。new winston.transports.File({ filename: 'error.log' }))、控制台(new winston.transports.Console())或远程服务器(如ELK Stack)。json()格式化日志(如format: winston.format.json()),便于后续分析(如用jq提取字段)。logrotate工具自动管理日志文件大小(如每天生成新日志,保留7天旧日志),避免日志文件过大占用磁盘空间。配置示例:在/etc/logrotate.d/your-js-app中添加:/var/log/your-js-app.log {
daily
rotate 7
compress
missingok
notifempty
}
Error: listen EADDRINUSE :::3000(端口3000已被占用),用sudo lsof -i :3000查找占用进程,再用sudo kill -9 <PID>终止进程。Error: Cannot find module 'express',用npm install express安装缺失的依赖。EACCES: permission denied(权限不足),用sudo chown youruser:yourgroup /path/to/app.js修改文件所有权,或用chmod 755 /path/to/app.js调整权限。