conf: log4js

main
Lei OT 10 months ago
parent 4ad77884d3
commit 21ef6e9fef

@ -7,6 +7,8 @@ const onerror = require('koa-onerror')
const bodyparser = require('koa-bodyparser')
const logger = require('koa-logger')
const log4js = require('./config/log4');
const index = require('./routes/index')
const { Aids: syncAids, AidsState: syncAidsState, hotelLgcDetails: syncHotelDetails, chinaHotelDetails: syncChinas } = require('./jobs/syncHeytripJobs');
@ -14,7 +16,7 @@ const rlog = require('./middleware/request_log');
// error handler
onerror(app)
app.use(log4js);
// middlewares
app.use(bodyparser({
enableTypes:['json', 'form', 'text']

@ -0,0 +1,52 @@
const log4js = require('log4js');
const log_config = {
"appenders": {
"everything": {
"type": "dateFile",
"filename": "logs/app",
"pattern": "yyyy-MM-dd.log",
"alwaysIncludePattern": true
}
// "everything": {
// "type": "multiFile",
// "base": "logs/app.",
// "property": "startTime",
// // "extension": ".log",
// "pattern": "yyyy-MM-dd.log",
// // "pattern": "yyyy-MM-dd",
// "alwaysIncludePattern": true,
// "maxLogSize": 10485760,
// "backups": 3,
// "compress": true
// }
},
"categories": {
"default": {
"appenders": ["everything"],
"level": "debug"
}
}
};
log4js.configure(log_config);
// log4js.configure({
// appenders: { cheese: { type: 'file', filename: 'cheese.log' } },
// categories: { default: { appenders: ['cheese'], level: 'error' } }
// });
const logger = log4js.getLogger();
console.log = logger.info.bind(logger);
console.error = logger.error.bind(logger);
const log4 = async (ctx, next) => {
try {
await next();
} catch (err) {
logger.error(err);
ctx.status = err.status || 500;
ctx.body = err.message;
}
}
module.exports = log4;

@ -28,18 +28,19 @@ const Aids = () => {
* 更新酒店的状态, 是否下架
*/
const AidsState = () => {
// const jobAS = scheduleJob('*/2 * * * * *', async function () {
const jobAS = scheduleJob('0 5 0 * * *', async function () {
const jobAS = scheduleJob('*/2 * * * * *', async function () {
// const jobAS = scheduleJob('0 5 0 * * *', async function () {
console.log('--------------------syncing heytrip, get available accommodation ids.--------------------');
const isRunning = jobAS.pendingInvocations[0]?.job?.running == 1;
if (!isRunning) {
const res = await heytripService.syncAidState();
// jobAS.cancel(); // debug: 0
if (res.nextPage !== true) {
console.log('job completed! canceled job!');
console.log('job completed! canceled job[AidsState]!');
jobAS.cancel();
}
} else {
console.log('pre job running! cancelNext');
console.log('pre job running! cancelNext[AidsState]');
jobAS.cancelNext();
}
});
@ -60,10 +61,10 @@ const hotelLgcDetails = () => {
// job2.cancel(); // debug: 0
if (res.next !== true) {
job2.cancel();
console.log('job completed! canceled job!');
console.log('job completed! canceled job[hotelLgcDetails]!');
}
} else {
console.log('pre job running! cancelNext');
console.log('pre job running! cancelNext[hotelLgcDetails]');
job2.cancelNext();
}
});

@ -22,6 +22,7 @@
"koa-static": "^5.0.0",
"koa-views": "^6.2.0",
"koa2-cors": "^2.0.6",
"log4js": "^6.9.1",
"mysql2": "^3.11.0",
"node-schedule": "^2.1.1",
"sequelize": "^6.37.3"

@ -141,6 +141,8 @@ class Heytrip {
pageIndex = lastPageIndex;
if (isEmpty(lastPageIndex)) {
lastPageIndex = await this.getLastPageIndex({ last_modify_time: { [Op.gt]: today }, page_index: { [Op.lt]: 9999 } });
console.log('syncAidState', 'lastPageIndex', lastPageIndex);
pageIndex = lastPageIndex + 1;
}
console.log('syncAidState', lastPageIndex, pageIndex);
@ -307,6 +309,8 @@ class Heytrip {
let allIds = [];
try {
allIds = rows.map((item) => item.hotel_id);
console.log('allIds', allIds);
if (isEmpty(rows)) {
return { next: !isEmpty(allIds), data: allIds };
}

@ -22,7 +22,7 @@ const AvailableAccommodationIds = async (pageIndex) => {
Authorization: make_token(),
},
});
console.log('Call pageIndex', pageIndex, response.data.TotalPage);
console.log('Call pageIndex', pageIndex, 'totalPage', response.data.TotalPage);
return response.data.Data || [];
};

Loading…
Cancel
Save