From 21ef6e9fef1b83ced8e93e7e3b8443d2eb3ccaad Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 22 Aug 2024 09:58:56 +0800 Subject: [PATCH] conf: log4js --- server/app.js | 4 ++- server/config/log4.js | 52 +++++++++++++++++++++++++++++++ server/jobs/syncHeytripJobs.js | 13 ++++---- server/package.json | 1 + server/services/heytripService.js | 4 +++ server/vendor/heytrip.js | 2 +- 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 server/config/log4.js diff --git a/server/app.js b/server/app.js index a333b44..6966598 100644 --- a/server/app.js +++ b/server/app.js @@ -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'] diff --git a/server/config/log4.js b/server/config/log4.js new file mode 100644 index 0000000..0c9b467 --- /dev/null +++ b/server/config/log4.js @@ -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; diff --git a/server/jobs/syncHeytripJobs.js b/server/jobs/syncHeytripJobs.js index 73f8703..37a2001 100644 --- a/server/jobs/syncHeytripJobs.js +++ b/server/jobs/syncHeytripJobs.js @@ -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(); } }); diff --git a/server/package.json b/server/package.json index 1b050e2..117fc66 100644 --- a/server/package.json +++ b/server/package.json @@ -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" diff --git a/server/services/heytripService.js b/server/services/heytripService.js index cef7ddb..da56271 100644 --- a/server/services/heytripService.js +++ b/server/services/heytripService.js @@ -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 }; } diff --git a/server/vendor/heytrip.js b/server/vendor/heytrip.js index 329c2da..35fd24f 100644 --- a/server/vendor/heytrip.js +++ b/server/vendor/heytrip.js @@ -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 || []; };