1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/backend/routes/LoggerRouter.ts

50 lines
1.4 KiB
TypeScript
Raw Normal View History

2017-06-21 17:32:56 +08:00
import {NextFunction, Request, Response} from "express";
import {Logger} from "../Logger";
2017-07-09 20:23:50 +08:00
/**
* Adds logging to express
*/
2017-06-21 17:32:56 +08:00
export class LoggerRouter {
public static route(app: any) {
app.get("/api*", (req: Request, res: Response, next: NextFunction) => {
req['_startTime'] = Date.now();
req['logged'] = true;
const end = res.end;
res.end = (a?: any, b?: any, c?: any) => {
res.end = end;
res.end(a, b, c);
Logger.verbose(req.method, req.url, res.statusCode, (Date.now() - req['_startTime']) + "ms");
};
return next();
});
app.get("/node_modules*", (req: Request, res: Response, next: NextFunction) => {
req['_startTime'] = Date.now();
req['logged'] = true;
const end = res.end;
res.end = (a?: any, b?: any, c?: any) => {
res.end = end;
res.end(a, b, c);
Logger.silly(req.method, req.url, res.statusCode, (Date.now() - req['_startTime']) + "ms");
};
return next();
});
app.use((req: Request, res: Response, next: NextFunction) => {
if (req['logged'] == true) {
return next();
}
req['_startTime'] = Date.now();
const end = res.end;
res.end = (a?: any, b?: any, c?: any) => {
res.end = end;
res.end(a, b, c);
Logger.debug(req.method, req.url, res.statusCode, (Date.now() - req['_startTime']) + "ms");
};
return next();
});
}
}