diff --git a/package.json b/package.json index 8f29fad..0b3c951 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "cookie-parser": "^1.4.6", "cors": "^2.8.5", "express": "^4.17.3", - "mocha": "^9.2.1" + "mocha": "^9.2.1", + "moment": "^2.29.1" } } diff --git a/src/helper/logger.js b/src/helper/logger.js new file mode 100644 index 0000000..b1e3b9a --- /dev/null +++ b/src/helper/logger.js @@ -0,0 +1,28 @@ +var fs = require("fs"); +var util = require("util"); +var moment = require("moment"); +let name; +var log_file; +updateData(); +var log_stdout = process.stdout; + +function updateData() { + name = "log_" + moment().format("YYYY-MM-DD") + ".txt"; + log_file = fs.createWriteStream(__dirname + "/../../logs/" + name, { + flags: "a", + }); +} +console.log = function (d) { + name = "log_" + moment().format("YYYY-MM-DD") + ".txt"; + + d = `[ ${moment().format("YYYY-MM-DD HH:mm:ss")}] ${util.format(d)} \n`; + log_file.write(d); + log_stdout.write(d); +}; + +function getCurrentlog() { + return fs.readFileSync(__dirname + "/../../logs/" + name, "utf8").toString(); + // .replace(/\n/g, "
"); +} + +module.exports = { getCurrentlog }; diff --git a/src/helper/states.js b/src/helper/states.js new file mode 100644 index 0000000..b55f695 --- /dev/null +++ b/src/helper/states.js @@ -0,0 +1,7 @@ +let JssteState = { statusMSG: "could not started JSSTE", status: 1 }; +let WebsrvState = { port: undefined, status: undefined }; + +module.exports = { + JssteState, + WebsrvState, +}; diff --git a/src/index.js b/src/index.js index 9ccdfb8..5b4c149 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,4 @@ +require("./helper/logger"); let conf = require("./helper/conf")(); let websrv = require("./websrv")(conf); diff --git a/src/websrv/index.js b/src/websrv/index.js index 1af3ae3..065beb4 100644 --- a/src/websrv/index.js +++ b/src/websrv/index.js @@ -6,6 +6,7 @@ module.exports = function (conf) { const cookieParser = require("cookie-parser"); const cors = require("cors"); const fs = require("fs"); + let State = require("../helper/states").WebsrvState; const internalRouter = require("./routes/internalRouter"); @@ -16,13 +17,18 @@ module.exports = function (conf) { app.use("/api", internalRouter); app.slisten = function (cb) { - app.ServerInstance = app.listen( - websrvConfig.port, - websrvConfig.host, - () => { + app.ServerInstance = app + .listen(websrvConfig.port, websrvConfig.host, () => { + State.status = 0; + State.statusMSG = "webserver is running"; + State.port = websrvConfig.port; cb(websrvConfig.host, websrvConfig.port); - } - ); + }) + .on("error", (err) => { + State.status = 1; + State.statusMSG = "webserver could not started"; + console.log(err); + }); }; /** diff --git a/src/websrv/routes/internalRouter.js b/src/websrv/routes/internalRouter.js index 0575538..71f7714 100644 --- a/src/websrv/routes/internalRouter.js +++ b/src/websrv/routes/internalRouter.js @@ -1,9 +1,8 @@ const conf = require("../../helper/conf")(); const express = require("express"); const router = express.Router(); - -const jssteState = { statusMSG: "could not started JSSTE", status: 1 }; -const websrvState = { port: 5000, status: 1 }; +const States = require("../../helper/states"); +const logger = require("../../helper/logger"); router.get("/conf", (req, res) => { console.log(conf); @@ -11,10 +10,13 @@ router.get("/conf", (req, res) => { }); router.get("/jsste/status", (req, res) => { - res.json(jssteState); + res.json(States.JssteState); }); router.get("/websrv/status", (req, res) => { - res.json(websrvState); + res.json(States.WebsrvState); +}); +router.get("/logs", (req, res) => { + res.json(logger.getCurrentlog()); }); module.exports = router; diff --git a/yarn.lock b/yarn.lock index 3d38580..59fff0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -615,6 +615,11 @@ mocha@^9.2.1: yargs-parser "20.2.4" yargs-unparser "2.0.0" +moment@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"