Compare View

switch
from
...
to
 
Commits (5)

Changes

Showing 3 changed files Inline Diff

logger-circular-buffer-web.js
File was created 1 "use strict";
2
3 const http = require('http');
4 const auth = require('basic-auth');
5
6 const config = require('./config');
7 const logger = require('./logger');
8
9 if (config && config.logger && && config.logger.circular_buffer_http && config.logger.circular_buffer_http.listen_port) {
10 http.createServer(function(req, res) {
11 var credentials = auth(req);
12
13 if (!credentials && credentials.name != config.logger.circular_buffer.username && credentials.pass != config.logger.circular_buffer.password) {
14 res.statusCode = 401;
15 res.setHeader('WWW-Authenticate', 'Basic realm="example"');
16 res.end('Access denied');
17 }
18 else {
19
20 logger.query({json: true, order: desc}, function(err, results) {
21 if (err) {
22 res.end('INVALID LOGGER');
23 }
24 else {
25 res.writeHead(200, { 'Content-Type': 'application/json' });
26 res.end(JSON.stringify(results));
27 }
28 });
29 }
30 }).listen(config.logger.circular_buffer_http.listen_port);
31
32 logger.verbose('Logger circular buffer http server listen on port ' + config.logger.circular_buffer_http.listen_port);
33 }
34 else {
35 logger.verbose('Circular buffer logger http reader server is not configured, please set config.logger.circular_buffer.listen_port, config.logger.circular_buffer.username, and config.logger.circular_buffer.password')
36 }
1 "use strict"; 37
1 "use strict"; 1 "use strict";
2 2
3 const fs = require('fs'); 3 const fs = require('fs');
4 const strftime = require('strftime'); 4 const strftime = require('strftime');
5 const winston = require('winston'); 5 const winston = require('winston');
6 6
7 require('winston-daily-rotate-file'); 7 require('winston-daily-rotate-file');
8 require('winston-circular-buffer'); 8 require('winston-circular-buffer');
9 9
10 const config = require('./config'); 10 const config = require('./config');
11 11
12 var loggerTimestamp = function() { 12 var loggerTimestamp = function() {
13 return strftime('%F %T', new Date()); 13 return strftime('%F %T', new Date());
14 } 14 }
15 15
16 let logger; 16 let logger;
17 17
18 const logDirectory = process.cwd() + '/logs'; 18 const logDirectory = process.cwd() + '/logs';
19 const filenamePrefix = logDirectory + "/log"; 19 const filenamePrefix = logDirectory + "/log";
20 20
21 fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory); 21 fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
22 22
23 logger = new winston.Logger({ 23 logger = new winston.Logger({
24 transports: [ 24 transports: [
25 new (winston.transports.Console)({ 25 new (winston.transports.Console)({
26 timestamp: function() { 26 timestamp: function() {
27 return strftime('%F %T', new Date()); 27 return strftime('%F %T', new Date());
28 }, 28 },
29 level: 'verbose', 29 level: 'verbose',
30 }), 30 }),
31 31
32 new (winston.transports.DailyRotateFile) ({ 32 new (winston.transports.DailyRotateFile) ({
33 name: 'log-file-txt', 33 name: 'log-file-txt',
34 filename: filenamePrefix, 34 filename: filenamePrefix,
35 timestamp: loggerTimestamp, 35 timestamp: loggerTimestamp,
36 formatter: function(options) { 36 formatter: function(options) {
37 return options.timestamp() 37 return options.timestamp()
38 +' ' + options.level.toUpperCase() 38 +' ' + options.level.toUpperCase()
39 +' ' + (undefined !== options.message ? options.message : '') 39 +' ' + (undefined !== options.message ? options.message : '')
40 + (options.meta && Object.keys(options.meta).length ? '\n\t' + JSON.stringify(options.meta) : '' ); 40 + (options.meta && Object.keys(options.meta).length ? '\n\t' + JSON.stringify(options.meta) : '' );
41 }, 41 },
42 level: 'debug', 42 level: 'debug',
43 }), 43 }),
44 44
45 new (winston.transports.CircularBuffer) ({ 45 new (winston.transports.CircularBuffer) ({
46 name: 'logs', 46 name: 'logs',
47 level: "verbose", 47 level: "verbose",
48 json: true, 48 json: true,
49 size: 500 49 size: 500
50 }) 50 })
51 ] 51 ]
52 }); 52 });
53 53
54 logger.verbose(__filename + ': initialized'); 54 logger.verbose(__filename + ': initialized');
55 55
56 require('./logger-circular-buffer-web');
57
56 require('./logger-circular-buffer-web'); 58 module.exports = logger;
57 59
1 { 1 {
2 "name": "komodo-sdk", 2 "name": "komodo-sdk",
3 "version": "1.6.8", 3 "version": "1.6.9",
4 "description": "SDK for Komodo", 4 "description": "SDK for Komodo",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "mocha", 7 "test": "mocha",
8 "postversion": "git push && git push --tags" 8 "postversion": "git push && git push --tags"
9 }, 9 },
10 "repository": { 10 "repository": {
11 "type": "git", 11 "type": "git",
12 "url": "git@gitlab.kodesumber.com:komodo/komodo-sdk.git" 12 "url": "git@gitlab.kodesumber.com:komodo/komodo-sdk.git"
13 }, 13 },
14 "keywords": [ 14 "keywords": [
15 "ppob", 15 "ppob",
16 "payment", 16 "payment",
17 "komodo" 17 "komodo"
18 ], 18 ],
19 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>", 19 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>",
20 "license": "ISC", 20 "license": "ISC",
21 "dependencies": { 21 "dependencies": {
22 "basic-auth": "^2.0.0",
22 "basic-auth": "^2.0.0", 23 "lru-cache": "^4.1.1",
23 "lru-cache": "^4.1.1", 24 "request": "^2.81.0",
24 "request": "^2.81.0", 25 "strftime": "^0.10.0",
25 "strftime": "^0.10.0", 26 "winston": "^2.3.1",
26 "winston": "^2.3.1", 27 "winston-circular-buffer": "^1.0.0",
27 "winston-circular-buffer": "^1.0.0", 28 "winston-daily-rotate-file": "^1.4.6"
28 "winston-daily-rotate-file": "^1.4.6" 29 }
29 } 30 }
30 } 31