Add logging functionality

Add logging on every API call, and on server starting and listenning.
This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent 8ef67efd83
commit afa2e6d928
4 files changed
+411 -14

No files matched your search

+30 -3
View File
@@ -12,6 +12,7 @@ const config = require("./config");
const api = require("./api");
const Authorizer = require("../common/authorizer");
const expression = require("../common/expression");
const logger = require("./logger");
const koa = new Koa();
const router = new Router();
@@ -19,6 +20,14 @@ const router = new Router();
const JWT_SECRET = config.server.jwtSecret;
const JWT_COOKIE = "genieacs-ui-jwt";
const VERSION = require("../package.json")["version"];
logger.info({
message: "GenieACS UI starting",
pid: process.pid,
version: VERSION
});
function getPermissionSets(roles) {
const allPermissions = config.permissions;
const permissionSets = roles.map(role => {
@@ -69,9 +78,17 @@ router.post("/login", async ctx => {
const user = config.auth.simple.users[username];
let log = {
message: "Log in",
context: ctx,
username: username
};
if (!user || user.password !== password) {
ctx.status = 400;
ctx.body = "Incorrect username or password";
log.message += " - invalid credentials";
logger.accessWarn(log);
return;
}
@@ -81,11 +98,18 @@ router.post("/login", async ctx => {
);
ctx.cookies.set(JWT_COOKIE, token);
ctx.body = JSON.stringify(token);
logger.accessInfo(log);
});
router.post("/logout", async ctx => {
ctx.cookies.set(JWT_COOKIE); // Delete cookie
ctx.body = "";
logger.accessInfo({
message: "Log out",
context: ctx
});
});
koa.use(koaBodyParser());
@@ -125,7 +149,10 @@ koa.use(
koa.use(router.routes());
koa.use(koaStatic("./public"));
koa.listen(config.server.port, () => {
// eslint-disable-next-line no-console
console.log(`Server listening on port ${config.server.port}`);
koa.listen(config.server.port, "0.0.0.0", () => {
logger.info({
message: "Worker litening",
port: config.server.port,
pid: process.pid
});
});