Commit b5c220d9dd80cade32f8be3c05214931c3ef6d85
1 parent
ff1b8b35f1
Exists in
master
logger
Showing 3 changed files with 48 additions and 22 deletions Side-by-side Diff
gentong.js
... | ... | @@ -9,6 +9,9 @@ var redis = require('redis'); |
9 | 9 | |
10 | 10 | var Router = require('node-simple-router'); |
11 | 11 | |
12 | +var winston = require('winston'); | |
13 | + | |
14 | +var logger; | |
12 | 15 | var config; |
13 | 16 | var httpServer; |
14 | 17 | var redisClient; |
... | ... | @@ -52,15 +55,26 @@ function topupRequest(task) { |
52 | 55 | } |
53 | 56 | }; |
54 | 57 | |
55 | - console.log(options); | |
58 | + logger.info('Creating http request to gateway', {options: options}); | |
56 | 59 | |
57 | 60 | request(options, function (error, response, body) { |
58 | 61 | |
59 | - console.log(logTag + ': DIRECT RESPONSE'); | |
62 | + logger.info(logTag + ': DIRECT RESPONSE'); | |
63 | + | |
64 | + if (error) { | |
65 | + | |
66 | + var error_message = 'Error on http connection to gateway: ' + error; | |
67 | + logger.warn(error_message); | |
68 | + callbackReport(task['requestId'], '91', error_message); | |
69 | + return; | |
60 | 70 | |
61 | - if (error || response.statusCode != 200) { | |
62 | - console.log(logTag + ': ' + 'Gateway Error'); | |
63 | - callbackReport(task['requestId'], '91', 'Gateway Error'); | |
71 | + } | |
72 | + | |
73 | + if (response.statusCode != 200) { | |
74 | + | |
75 | + var error_message = 'Gateway error, http response code: ' + response.statusCode; | |
76 | + logger.warn(error_message); | |
77 | + callbackReport(task['requestId'], '91', error_message); | |
64 | 78 | return; |
65 | 79 | } |
66 | 80 | |
... | ... | @@ -69,12 +83,12 @@ function topupRequest(task) { |
69 | 83 | |
70 | 84 | xml2js(body, function (err, result) { |
71 | 85 | if (err) { |
72 | - console.log(body); | |
86 | + logger.warn('Error parsing XML', {response_body: body}); | |
73 | 87 | callbackReport(task['requestId'], '40', body); |
74 | 88 | return; |
75 | 89 | } |
76 | 90 | |
77 | - console.log(result); | |
91 | + logger.info(result); | |
78 | 92 | |
79 | 93 | try { |
80 | 94 | if (result.direct_ack.request_status == 'OK') { |
... | ... | @@ -92,7 +106,7 @@ function topupRequest(task) { |
92 | 106 | responseMessage = result.direct_ack.info; |
93 | 107 | } |
94 | 108 | catch(err) { |
95 | - console.log('Exception on parsing request response'); | |
109 | + logger.warn('Exception on parsing request response'); | |
96 | 110 | responseCode = 40; |
97 | 111 | responseMessage = 'Invalid response from gateway'; |
98 | 112 | } |
... | ... | @@ -118,7 +132,7 @@ function parseSN(message, _config) { |
118 | 132 | var sn_match = message.match(sn_regex); |
119 | 133 | |
120 | 134 | if (sn_match <= 0) { |
121 | - console.log('SN Not found: ' + message); | |
135 | + logger.info('SN Not found: ' + message); | |
122 | 136 | return ''; |
123 | 137 | } |
124 | 138 | |
... | ... | @@ -142,7 +156,7 @@ function createServer() { |
142 | 156 | |
143 | 157 | var qs = url.parse(request.url, true).query; |
144 | 158 | |
145 | - console.log(qs); | |
159 | + logger.info('Got reverse report from gateway', {qs: qs}); | |
146 | 160 | |
147 | 161 | if (qs.topup_status == 'S') { |
148 | 162 | response_code = '00'; |
... | ... | @@ -166,7 +180,7 @@ function createServer() { |
166 | 180 | |
167 | 181 | } |
168 | 182 | catch(err) { |
169 | - console.log('Exception on parsing reverse report'); | |
183 | + logger.warn('Exception on parsing reverse report', {exception: err} ); | |
170 | 184 | response_code = '40'; |
171 | 185 | } |
172 | 186 | |
... | ... | @@ -181,7 +195,7 @@ function createServer() { |
181 | 195 | var key = getRedisKey(qs.ts); |
182 | 196 | redisClient.get(key, function(err, request_id) { |
183 | 197 | if (err) { |
184 | - console.log('Error when requesting request id for ts:' + qs.ts + ' (' + key + ')'); | |
198 | + logger.warn('Error when requesting request id for ts:' + qs.ts + ' (' + key + ')', {redis_error: err}); | |
185 | 199 | return; |
186 | 200 | } |
187 | 201 | |
... | ... | @@ -190,7 +204,7 @@ function createServer() { |
190 | 204 | }); |
191 | 205 | |
192 | 206 | httpServer.listen(config.h2h_out.listen_port, function() { |
193 | - console.log('HTTP Reverse/Report server listen on port ' + config.h2h_out.listen_port); | |
207 | + logger.info('HTTP Reverse/Report server listen on port ' + config.h2h_out.listen_port); | |
194 | 208 | }); |
195 | 209 | } |
196 | 210 | |
... | ... | @@ -223,13 +237,13 @@ function responseCodeFromMessage(message) { |
223 | 237 | function updateBalance(message) { |
224 | 238 | var balance = getBalanceFromMessage(message); |
225 | 239 | if (balance) { |
226 | - console.log('Balance: ' + balance); | |
240 | + logger.info('Balance: ' + balance); | |
227 | 241 | |
228 | 242 | try { |
229 | 243 | aaa.updateBalance(balance); |
230 | 244 | } |
231 | 245 | catch(err) { |
232 | - console.log('Exception on partner.updateBalance: ' + err); | |
246 | + logger.warn('Exception on partner.updateBalance: ' + err, {exception: err}); | |
233 | 247 | } |
234 | 248 | } |
235 | 249 | } |
... | ... | @@ -265,10 +279,18 @@ function start(_config, _callbackReport, options) { |
265 | 279 | config = _config; |
266 | 280 | callbackReport = _callbackReport |
267 | 281 | |
268 | - if (options) { | |
269 | - if (options.aaa) { | |
282 | + if (options && options.aaa) { | |
270 | 283 | aaa = options.aaa; |
271 | - } | |
284 | + } | |
285 | + | |
286 | + if (options && options.logger) { | |
287 | + logger = options.logger; | |
288 | + } else { | |
289 | + logger = new winston.Logger({ | |
290 | + transports: [ | |
291 | + new (winston.transports.Console)() | |
292 | + ] | |
293 | + }); | |
272 | 294 | } |
273 | 295 | |
274 | 296 | createRedisClient(); |
index.js
... | ... | @@ -3,8 +3,10 @@ var config = iniparser.parseSync('./config.ini'); |
3 | 3 | |
4 | 4 | var aaaHost = config.globals.aaa_host; |
5 | 5 | |
6 | +var logger = require('sate24/logger.js').start(); | |
7 | + | |
6 | 8 | HttpServer = require('sate24/httpserver.js'); |
7 | -var httpServer = HttpServer.start(config); | |
9 | +var httpServer = HttpServer.start(config, {logger: logger}); | |
8 | 10 | |
9 | 11 | var aaa = require('sate24/aaa.js'); |
10 | 12 | HttpServer.setAaa(aaa); |
... | ... | @@ -12,8 +14,9 @@ HttpServer.setAaa(aaa); |
12 | 14 | var partner = require('./gentong.js'); |
13 | 15 | |
14 | 16 | var partner_options = { |
15 | - 'aaa': aaa | |
17 | + 'aaa': aaa, | |
18 | + 'logger': logger | |
16 | 19 | } |
17 | 20 | |
18 | 21 | partner.start(config, aaa.callbackReport, partner_options); |
19 | -aaa.start(config, partner); | |
22 | +aaa.start(config, partner, {logger: logger}); |
package.json
... | ... | @@ -30,6 +30,7 @@ |
30 | 30 | "xml2js": "~0.4.9", |
31 | 31 | "redis": "~0.12.1", |
32 | 32 | "node-simple-router": "~0.9.4-2", |
33 | - "sate24": "git+http://git@gitlab.kodesumber.com/reload97/node-sate24.git" | |
33 | + "sate24": "git+http://git@gitlab.kodesumber.com/reload97/node-sate24.git", | |
34 | + "winston": "~1.0.1" | |
34 | 35 | } |
35 | 36 | } |