Restructured services to support more... services
This commit is contained in:
@@ -7,22 +7,45 @@ import morgan = require('morgan');
|
||||
const app = express()
|
||||
|
||||
app.use(morgan((tokens: morgan.TokenIndexer, req: express.Request, res: express.Response) => {
|
||||
return JSON.stringify({
|
||||
|
||||
const head: LogHeader = {
|
||||
type: 'http',
|
||||
level: 'info',
|
||||
depth: 'normal',
|
||||
timestamp: new Date().toISOString(),
|
||||
}
|
||||
|
||||
method: tokens.method(req, res),
|
||||
path: tokens.url(req, res),
|
||||
status: Number(tokens.status(req, res)),
|
||||
response_time_ms: Number(tokens['response-time'](req, res)),
|
||||
const payload: LogPayload = {
|
||||
message: 'HTTP request completed',
|
||||
data: {
|
||||
method: tokens.method(req, res),
|
||||
path: tokens.url(req, res),
|
||||
status: Number(tokens.status(req, res)),
|
||||
response_time_ms: Number(tokens['response-time'](req, res)),
|
||||
user_id: req.user.id,
|
||||
user_name: req.user.name,
|
||||
user_agent: req.headers['user-agent'],
|
||||
},
|
||||
}
|
||||
|
||||
ip: req.ip,
|
||||
user_agent: req.headers['user-agent'],
|
||||
logger.log(head.level, head.type, payload.message, payload.data, head.depth)
|
||||
// {
|
||||
// type: 'http',
|
||||
// timestamp: new Date().toISOString(),
|
||||
|
||||
user: req.user
|
||||
? { id: req.user.id, name: req.user.name }
|
||||
: null,
|
||||
});
|
||||
// method: tokens.method(req, res),
|
||||
// path: tokens.url(req, res),
|
||||
// status: Number(tokens.status(req, res)),
|
||||
// response_time_ms: Number(tokens['response-time'](req, res)),
|
||||
|
||||
// ip: req.ip,
|
||||
// user_agent: req.headers['user-agent'],
|
||||
|
||||
// user: req.user
|
||||
// ? { id: req.user.id, name: req.user.name }
|
||||
// : null,
|
||||
// }
|
||||
return '';
|
||||
}, {
|
||||
skip: (req: express.Request) => {
|
||||
return req.originalUrl === '/members/me';
|
||||
@@ -89,6 +112,7 @@ import { roles, memberRoles } from './routes/roles';
|
||||
import { courseRouter, eventRouter } from './routes/course';
|
||||
import { calendarRouter } from './routes/calendar';
|
||||
import { docsRouter } from './routes/docs';
|
||||
import { logger, LogHeader, LogPayload } from './services/logging/logger';
|
||||
|
||||
app.use('/application', applicationRouter);
|
||||
app.use('/ranks', ranks);
|
||||
|
||||
Reference in New Issue
Block a user