我正在尝试将 Log4js-Node 添加到在 Apache 上运行的 Node.js 服务器。这是我的代码:
const path = require("path");
const express = require("express");
const log4js = require('log4js');
const app = express();
const logger = log4js.getLogger();
logger.level = "debug";
const port = 443;
log4js.configure({
appenders: { everything: { type: 'file', filename: 'logs.log', flags: 'w' } },
categories: { default: { appenders: ['everything'], level: 'ALL' } }
});
const server = app.listen(port, () => {
logger.debug("listening to requests on port " + port);
});
app.get("/log", (req, res) => {
res.sendFile(path.join(__dirname + "/logs.log"));
});
当我在我的计算机上的 Node.js 上运行脚本并导航到 localhost:443/log 时,我看到了我所期望的,这就是:
[2020-03-17T22:50:43.145] [DEBUG] 默认 - 监听端口 443 上的请求
但是当我在远程服务器上运行代码时它崩溃了,我在错误页面中得到了这个(部分路径被我替换为“[removed]”):
应用程序 25925 输出:在服务器上。([删除]/index.js:27:9)
应用程序 25925 输出:在 Logger。[作为调试]([删除]/12/lib/node_modules/log4js/lib/logger.js:124:10)
应用程序 25925 输出:在 Logger.log ([删除]/12/lib/node_modules/log4js/lib/logger.js:73:12)
应用程序 25925 输出:在 Logger._log ([删除]/12/lib/node_modules/log4js/lib/logger.js:90:16)
应用程序 25925 输出:在 Object.send ([删除]/12/lib/node_modules/log4js/lib/clustering.js:97:15)
应用程序 25925 输出:[已删除]/12/lib/node_modules/log4js/lib/clustering.js:97
应用程序 25925 输出:在对象处。([删除]/12/lib/node_modules/log4js/lib/clustering.js:8:13)
我正在使用使用 Apache 2.4.41 的 A2 Hosting。我选择了 Node.js 12.9.0 和 Log4js 6.1.2。package.json 在我的计算机和服务器上应该是相同的,并且我npm install
在两者上都运行过。
这只是 Log4js 和服务器的问题,还是我在某个地方遗漏了什么?