Commit 025274bdbf9d56f2c1b64672c3cb534e3a649a0c

Authored by Husni Mubarok
1 parent 6d3c240f9e
Exists in master

Logging Lebih Rapih closed #1

Showing 3 changed files with 47 additions and 11 deletions Side-by-side Diff

1 1 node_modules/
2 2 config.ini
  3 +log_*
3 4 \ No newline at end of file
... ... @@ -4,6 +4,34 @@ var telegram = require('node-telegram-bot-api');
4 4 var request = require('request');
5 5 var http = require('http');
6 6 var url = require('url');
  7 +var strftime = require('strftime');
  8 +var winston = require('winston');
  9 +
  10 +var logger = new (winston.Logger)({
  11 + transports: [
  12 + new (winston.transports.Console)({
  13 + timestamp: function() {
  14 + return strftime('%F %T', new Date());
  15 + },
  16 + formatter: function(options) {
  17 + // Return string will be passed to logger.
  18 + return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') +
  19 + (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' );
  20 + }
  21 + }),
  22 + new (winston.transports.DailyRotateFile)({
  23 + filename: 'log_',
  24 + timestamp: function() {
  25 + return strftime('%F %T', new Date());
  26 + },
  27 + formatter: function(options) {
  28 + // Return string will be passed to logger.
  29 + return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') +
  30 + (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' );
  31 + }
  32 + })
  33 + ]
  34 +});
7 35  
8 36  
9 37 var chat_ids = {};
... ... @@ -14,9 +42,13 @@ var options = {
14 42  
15 43 var bot = new telegram(config.globals.token, options);
16 44  
  45 +function deleteChatId(from) {
  46 + delete chat_ids[from];
  47 +}
  48 +
17 49 function sendMessage(destination, message) {
18 50 //destination = destination.replace(/@TELEGRAM$/, '');
19   - console.log('Sending reply to ' + destination + ': ' + message);
  51 + logger.info('Sending reply to ' + destination + ': ' + message);
20 52 var chat_id = chat_ids[destination];
21 53 bot.sendMessage(chat_id, message);
22 54 }
... ... @@ -24,30 +56,30 @@ function sendMessage(destination, message) {
24 56 function createHttpResponseServer(){
25 57 var httpServer = http.createServer(function(request,response){
26 58 var qs = url.parse(request.url, true).query;
27   - console.log('Incoming message from SMSIN server:')
28   - console.log(qs);
  59 + logger.info('Incoming request from SMSIN server:', {qs: qs})
  60 + //logger.info(qs);
29 61 response.end('OK');
30 62  
31 63 sendMessage(qs.PhoneNumber, qs.text);
32 64 });
33 65 httpServer.listen(config.globals.listen_port, function(){
34   - console.log("listening on " + config.globals.listen_port);
  66 + logger.info("listening on " + config.globals.listen_port);
35 67 })
36 68 }
37 69 createHttpResponseServer();
38 70  
39 71 bot.getMe().then(function (me) {
40   - console.log('Hi my name is %s!', me.username);
  72 + logger.info('Hi my name is %s!', me.username);
41 73 });
42 74  
43 75 bot.on('text', function (msg) {
44   - console.log(msg);
  76 + logger.info(msg);
45 77  
46 78 var now = Math.floor(new Date().getTime()/1000);
47 79  
48 80 if (now - msg.date > config.globals.message_max_age){
49 81 var message = 'Pesan "' + msg.text + '" diabaikan. Silahkan diulang kembali.';
50   - console.log(message)
  82 + logger.info(message)
51 83 bot.sendMessage(msg.chat.id, message);
52 84 return;
53 85 }
... ... @@ -55,6 +87,7 @@ bot.on('text', function (msg) {
55 87 var from = msg.from.username.toUpperCase() + config.globals.msisdn_suffix;
56 88  
57 89 chat_ids[from] = msg.chat.id;
  90 + //setTimeout(deleteChatId, 1000 * 3600 * 24 * 2, from)
58 91  
59 92 bot.sendMessage( msg.chat.id,'Pesan anda telah diterima: ' + msg.text);
60 93  
... ... @@ -70,12 +103,12 @@ bot.on('text', function (msg) {
70 103  
71 104 request(request_opts, function(err, response, body) {
72 105 if (err) {
73   - console.log('Request error: ' + err);
  106 + logger.info('Request error: ' + err);
74 107 return;
75 108 }
76 109  
77   - console.log('Response: ' + response);
78   - console.log('Body: ' + body);
  110 + logger.info('Response: ' + response);
  111 + logger.info('Body: ' + body);
79 112  
80 113 });
81 114 });
... ... @@ -20,6 +20,8 @@
20 20 "dependencies": {
21 21 "iniparser": "^1.0.5",
22 22 "node-telegram-bot-api": "^0.12.1",
23   - "request": "^2.61.0"
  23 + "request": "^2.61.0",
  24 + "strftime": "^0.9.2",
  25 + "winston": "^1.0.1"
24 26 }
25 27 }