diff --git a/.gitignore b/.gitignore index f19d2281f4757bc1af31ca422e9c8844219e11d9..b0ce50ee330b11485ca8fa03fa767e722a70e2c5 100644 --- a/.gitignore +++ b/.gitignore @@ -47,5 +47,6 @@ app/lib/dal/sqliteDAL/*.js* app/lib/dal/sqliteDAL/index/*.js* app/lib/dal/fileDALs/*.js* app/lib/dal/fileDAL.js* +app/lib/logger*js* app/service/*.js* app/lib/wot.js* \ No newline at end of file diff --git a/app/lib/computation/BlockchainContext.ts b/app/lib/computation/BlockchainContext.ts index 2b267ece25fe826a23ac92814d2a7fc0dd5b7c9d..9f4e2b3899f9b49407b2896a678f05a0415d5243 100644 --- a/app/lib/computation/BlockchainContext.ts +++ b/app/lib/computation/BlockchainContext.ts @@ -98,7 +98,7 @@ export class BlockchainContext { this.conf = newConf; this.blockchain = theBlockchain this.quickSynchronizer = theQuickSynchronizer - this.logger = require('../logger')(this.dal.profile); + this.logger = require('../logger').NewLogger(this.dal.profile); } checkBlock(block: BlockDTO, withPoWAndSignature = true): Promise<any> { diff --git a/app/lib/dal/drivers/SQLiteDriver.ts b/app/lib/dal/drivers/SQLiteDriver.ts index e2af704fa145086173d042b1a1b27ba14224d2c5..3a47dd1b9fb0b5e649e63f515aebea397faffce0 100644 --- a/app/lib/dal/drivers/SQLiteDriver.ts +++ b/app/lib/dal/drivers/SQLiteDriver.ts @@ -11,7 +11,7 @@ export class SQLiteDriver { constructor( private path:string ) { - this.logger = require('../../logger')('driver') + this.logger = require('../../logger').NewLogger('driver') } getDB(): Promise<any> { diff --git a/app/lib/dal/fileDAL.ts b/app/lib/dal/fileDAL.ts index b2f5f0ca318cbbcae88ef939e078e1b284636702..43dcd1b4fad309bbfa10fc819c15e58e710d6766 100644 --- a/app/lib/dal/fileDAL.ts +++ b/app/lib/dal/fileDAL.ts @@ -20,7 +20,7 @@ const readline = require('readline') const _ = require('underscore'); const common = require('duniter-common'); const indexer = require('../indexer').Indexer -const logger = require('../logger')('filedal'); +const logger = require('../logger').NewLogger('filedal'); const Configuration = require('../entity/configuration'); const Merkle = require('../entity/merkle'); const Transaction = require('../entity/transaction'); diff --git a/app/lib/dal/fileDALs/ConfDAL.ts b/app/lib/dal/fileDALs/ConfDAL.ts index 590ae8d414c3e34a4502e4d9fe6038157fe4fcc7..4ae01250212b0ab82bde948f36c70ac9ad3ab398 100644 --- a/app/lib/dal/fileDALs/ConfDAL.ts +++ b/app/lib/dal/fileDALs/ConfDAL.ts @@ -11,7 +11,7 @@ export class ConfDAL extends AbstractCFS { constructor(rootPath:string, qioFS:any) { super(rootPath, qioFS) - this.logger = require('../../logger')() + this.logger = require('../../logger').NewLogger() } init() { diff --git a/app/lib/dal/sqliteDAL/AbstractSQLite.ts b/app/lib/dal/sqliteDAL/AbstractSQLite.ts index b74dcf022941ce40417ae182723ae09dd769f67c..f888f168ea752b0ad831d97ef5a3f5251f681409 100644 --- a/app/lib/dal/sqliteDAL/AbstractSQLite.ts +++ b/app/lib/dal/sqliteDAL/AbstractSQLite.ts @@ -6,7 +6,7 @@ import {SQLiteDriver} from "../drivers/SQLiteDriver" const _ = require('underscore'); const co = require('co'); const colors = require('colors'); -const logger = require('../../logger')('sqlite'); +const logger = require('../../logger').NewLogger('sqlite'); export interface BeforeSaveHook<T> { (t:T): void diff --git a/app/lib/dal/sqliteDAL/MetaDAL.ts b/app/lib/dal/sqliteDAL/MetaDAL.ts index f19f58acf23910fef537be6104ace4b00d89f320..83d175dcc68f8b1ef0fbca5804caf9d436592e12 100644 --- a/app/lib/dal/sqliteDAL/MetaDAL.ts +++ b/app/lib/dal/sqliteDAL/MetaDAL.ts @@ -11,7 +11,7 @@ import {WalletDAL} from "./WalletDAL"; import {MIndexDAL} from "./index/MIndexDAL"; const _ = require('underscore') -const logger = require('../../logger')('metaDAL'); +const logger = require('../../logger').NewLogger('metaDAL'); const common = require('duniter-common'); const rawer = require('duniter-common').rawer; const constants = require('./../../constants'); diff --git a/app/lib/logger/index.js b/app/lib/logger.ts similarity index 71% rename from app/lib/logger/index.js rename to app/lib/logger.ts index 11b5189d47f7dfb0afde0ee464e78032bc11893b..74fda628f263c88a2ab283ebc9793c4e1bdc7fa0 100644 --- a/app/lib/logger/index.js +++ b/app/lib/logger.ts @@ -2,7 +2,31 @@ const moment = require('moment'); const path = require('path'); const winston = require('winston'); -const cbLogger = require('./callbackLogger'); + +/*************** + * CALLBACK LOGGER + ***************/ + +const util = require('util'); + +const CallbackLogger = winston.transports.CallbackLogger = function (options:any) { + + this.name = 'customLogger'; + this.level = options.level || 'info'; + this.callback = options.callback; + this.timestamp = options.timestamp; +}; + +util.inherits(CallbackLogger, winston.Transport); + +CallbackLogger.prototype.log = function (level:string, msg:string, meta:any, callback:any) { + this.callback(level, msg, this.timestamp()); + callback(null, true); +}; + +/*************** + * NORMAL LOGGER + ***************/ const customLevels = { levels: { @@ -45,10 +69,10 @@ const logger = new (winston.Logger)({ // Singletons let loggerAttached = false; -logger.addCallbackLogs = (callbackForLog) => { +logger.addCallbackLogs = (callbackForLog:any) => { if (!loggerAttached) { loggerAttached = true; - logger.add(cbLogger, { + logger.add(CallbackLogger, { callback: callbackForLog, level: 'trace', levels: customLevels.levels, @@ -63,7 +87,7 @@ logger.addCallbackLogs = (callbackForLog) => { // Singletons let loggerHomeAttached = false; -logger.addHomeLogs = (home, level) => { +logger.addHomeLogs = (home:string, level:string) => { if (!muted) { if (loggerHomeAttached) { logger.remove(winston.transports.File); @@ -98,4 +122,6 @@ logger.mute = () => { /** * Convenience function to get logger directly */ -module.exports = () => logger; +export function NewLogger() { + return logger +} diff --git a/app/lib/logger/callbackLogger.js b/app/lib/logger/callbackLogger.js deleted file mode 100644 index 08de074c318fad28742480df142617be9d1ef4be..0000000000000000000000000000000000000000 --- a/app/lib/logger/callbackLogger.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -const util = require('util'); -const winston = require('winston'); - -const CallbackLogger = winston.transports.CallbackLogger = function (options) { - - this.name = 'customLogger'; - this.level = options.level || 'info'; - this.callback = options.callback; - this.timestamp = options.timestamp; -}; - -util.inherits(CallbackLogger, winston.Transport); - -CallbackLogger.prototype.log = function (level, msg, meta, callback) { - this.callback(level, msg, this.timestamp()); - callback(null, true); -}; - -module.exports = CallbackLogger; diff --git a/app/lib/streams/multicaster.js b/app/lib/streams/multicaster.js index 250bac781d06e0dc5df7de533c01906ba46c705b..9cbc4d74fe13ed1b8017de63fbd83fe8a6e9e064 100644 --- a/app/lib/streams/multicaster.js +++ b/app/lib/streams/multicaster.js @@ -12,7 +12,7 @@ const Revocation = require('../../lib/entity/revocation'); const Membership = require('../../lib/entity/membership'); const Block = require('../../lib/entity/block'); const Transaction = require('../../lib/entity/transaction'); -const logger = require('../logger')('multicaster'); +const logger = require('../logger').NewLogger('multicaster'); const WITH_ISOLATION = true; diff --git a/app/lib/streams/router.js b/app/lib/streams/router.js index f97138ab45475699673b2ab8c37fd141c84459aa..b8c75a01fab31e80af7d059d4fe83bf83edc24dd 100644 --- a/app/lib/streams/router.js +++ b/app/lib/streams/router.js @@ -16,7 +16,7 @@ function Router (PeeringService, dal) { dal = theDAL; }; - const logger = require('../logger')('router'); + const logger = require('../logger').NewLogger('router'); stream.Transform.call(this, { objectMode: true }); diff --git a/app/lib/wizard.js b/app/lib/wizard.js index 61b50985462beb5ab6b69baf7331e45ff7b25d9f..4c113a8d955baf8347a589c56ab73b7df01df01e 100644 --- a/app/lib/wizard.js +++ b/app/lib/wizard.js @@ -3,7 +3,7 @@ const co = require('co'); const constants = require('./constants'); const async = require('async'); const inquirer = require('inquirer'); -const logger = require('./logger')('wizard'); +const logger = require('./logger').NewLogger('wizard'); module.exports = function () { return new Wizard(); diff --git a/app/modules/check-config.js b/app/modules/check-config.js index 614f6e37bbb3c6219415fa44257b661406a07031..7605ebd1d6d1cc108fae2d43f8fa2f2c150c4990 100644 --- a/app/modules/check-config.js +++ b/app/modules/check-config.js @@ -3,7 +3,7 @@ const co = require('co'); const constants = require('../lib/constants'); const wizard = require('../lib/wizard'); -const logger = require('../lib/logger')('wizard'); +const logger = require('../lib/logger').NewLogger('wizard'); module.exports = { duniter: { diff --git a/app/modules/reset.js b/app/modules/reset.js index 5786f37a3f06394483ae773b6f428997d223106b..cf6e08ffd4d1914f8f20447eea2a3ca877a83250 100644 --- a/app/modules/reset.js +++ b/app/modules/reset.js @@ -3,7 +3,7 @@ const co = require('co'); const constants = require('../lib/constants'); const wizard = require('../lib/wizard'); -const logger = require('../lib/logger')('wizard'); +const logger = require('../lib/logger').NewLogger('wizard'); module.exports = { duniter: { diff --git a/app/modules/wizard.js b/app/modules/wizard.js index 6786a16ed9efdc9437264b97bd45f9fb685f8f5d..014451cab065a123015bc51395fb4c14129d976e 100644 --- a/app/modules/wizard.js +++ b/app/modules/wizard.js @@ -3,7 +3,7 @@ const Q = require('q'); const co = require('co'); const wizard = require('../lib/wizard'); -const logger = require('../lib/logger')('wizard'); +const logger = require('../lib/logger').NewLogger('wizard'); module.exports = { duniter: { diff --git a/app/service/BlockchainService.ts b/app/service/BlockchainService.ts index 2c874f7d7bd05904597769cf82f0a23edc476b3a..fb9a28c987785d9894f5339a09f6df3576cf5ddd 100644 --- a/app/service/BlockchainService.ts +++ b/app/service/BlockchainService.ts @@ -40,7 +40,7 @@ export class BlockchainService { setConfDAL(newConf:ConfDTO, newDAL:FileDAL, newKeyPair:any) { this.dal = newDAL; this.conf = newConf; - this.logger = require('../lib/logger')(this.dal.profile) + this.logger = require('../lib/logger').NewLogger(this.dal.profile) this.quickSynchronizer = new QuickSynchronizer(this.server.blockchain, this.conf, this.dal, this.logger) this.mainContext.setConfDAL(this.conf, this.dal, this.server.blockchain, this.quickSynchronizer) this.selfPubkey = newKeyPair.publicKey; diff --git a/app/service/IdentityService.ts b/app/service/IdentityService.ts index 97a7d9657081a91bced82aa7944f6cab2cf0066a..25c3519712a98719c7c0c5590e05cb9f835b7d52 100644 --- a/app/service/IdentityService.ts +++ b/app/service/IdentityService.ts @@ -26,7 +26,7 @@ export class IdentityService { setConfDAL(newConf:ConfDTO, newDAL:FileDAL) { this.dal = newDAL; this.conf = newConf; - this.logger = require('../lib/logger')(this.dal.profile); + this.logger = require('../lib/logger').NewLogger(this.dal.profile); } searchIdentities(search:string) { diff --git a/app/service/MembershipService.ts b/app/service/MembershipService.ts index 5fa1defa18c41164b0c23578441921ad4042b687..f825e18b3f7a019cc5a7cc51356bfe16b5fa1cc9 100644 --- a/app/service/MembershipService.ts +++ b/app/service/MembershipService.ts @@ -17,7 +17,7 @@ export class MembershipService { setConfDAL(newConf:ConfDTO, newDAL:FileDAL) { this.dal = newDAL; this.conf = newConf; - this.logger = require('../lib/logger')(this.dal.profile); + this.logger = require('../lib/logger').NewLogger(this.dal.profile); } current() { diff --git a/app/service/PeeringService.ts b/app/service/PeeringService.ts index 31de19ac06a253fbacfbc48aec6f096a00b09507..c9305c637b2ed20b80ec79b4280e74ee798e09d8 100644 --- a/app/service/PeeringService.ts +++ b/app/service/PeeringService.ts @@ -11,7 +11,7 @@ const events = require('events'); const rp = require('request-promise'); const multicaster = require('../lib/streams/multicaster'); const keyring = require('duniter-common').keyring; -const logger = require('../lib/logger')('peering'); +const logger = require('../lib/logger').NewLogger('peering'); const dos2unix = require('duniter-common').dos2unix; const hashf = require('duniter-common').hashf; const rawer = require('duniter-common').rawer; diff --git a/app/service/TransactionsService.ts b/app/service/TransactionsService.ts index d987d811f652c5715f9d61a2e36a1156d9704474..4dc613b1612b44deeca0c0a24af19a90cb6b4574 100644 --- a/app/service/TransactionsService.ts +++ b/app/service/TransactionsService.ts @@ -20,7 +20,7 @@ export class TransactionService { setConfDAL(newConf:ConfDTO, newDAL:FileDAL) { this.dal = newDAL; this.conf = newConf; - this.logger = require('../lib/logger')(this.dal.profile); + this.logger = require('../lib/logger').NewLogger(this.dal.profile); } processTx(txObj:any) { diff --git a/index.js b/index.js index 974d5531b9e14831c9435a926dea3a19b014c14a..a7bb57d051edaf82a76ea65121cca2b8eb083ee5 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,7 @@ const Server = require('./server'); const directory = require('./app/lib/system/directory'); const constants = require('./app/lib/constants'); const wizard = require('./app/lib/wizard'); -const logger = require('./app/lib/logger')('duniter'); +const logger = require('./app/lib/logger').NewLogger('duniter'); const configDependency = require('./app/modules/config'); const wizardDependency = require('./app/modules/wizard'); diff --git a/server.js b/server.js index d07d87c2fc300609fec41959f71d1507a61abf40..4c23e1e65fb10e8ae25db451521c323953e79bda 100644 --- a/server.js +++ b/server.js @@ -24,7 +24,7 @@ function Server (home, memoryOnly, overrideConf) { stream.Duplex.call(this, { objectMode: true }); const paramsP = directory.getHomeParams(memoryOnly, home); - const logger = require('./app/lib/logger')('server'); + const logger = require('./app/lib/logger').NewLogger('server'); const that = this; that.home = home; that.conf = null; diff --git a/test/fast/prover/pow-1-cluster.js b/test/fast/prover/pow-1-cluster.js index 9f1a20b63278ca6675fc5a7c3ab62a4d9b4c7667..130dffe2f6650a6262100b9d464f8c64d9f61b92 100644 --- a/test/fast/prover/pow-1-cluster.js +++ b/test/fast/prover/pow-1-cluster.js @@ -3,7 +3,7 @@ const co = require('co') const should = require('should') const powCluster = require('../../../app/modules/prover/lib/powCluster') -const logger = require('../../../app/lib/logger')() +const logger = require('../../../app/lib/logger').NewLogger() let master diff --git a/test/fast/prover/pow-2-engine.js b/test/fast/prover/pow-2-engine.js index f9b189905576dd36576a70836d5fc6c789fb1640..2a2d301eebe537f8b0c05962716b9a9bb8d342ff 100644 --- a/test/fast/prover/pow-2-engine.js +++ b/test/fast/prover/pow-2-engine.js @@ -3,7 +3,7 @@ const co = require('co'); const should = require('should'); const engine = require('../../../app/modules/prover/lib/engine'); -const logger = require('../../../app/lib/logger')() +const logger = require('../../../app/lib/logger').NewLogger() describe('PoW Engine', () => { diff --git a/test/integration/branches2.js b/test/integration/branches2.js index 30d8bd4fed230dc4a377259166f296ea230270c2..9aeb656ff18e47d77946d1260adedc9e8a933b15 100644 --- a/test/integration/branches2.js +++ b/test/integration/branches2.js @@ -15,7 +15,7 @@ const expectJSON = httpTest.expectJSON; const expectHttpCode = httpTest.expectHttpCode; if (constants.MUTE_LOGS_DURING_UNIT_TESTS) { - require('../../app/lib/logger')().mute(); + require('../../app/lib/logger').NewLogger().mute(); } // Trace these errors diff --git a/test/integration/forwarding.js b/test/integration/forwarding.js index 6d5d7a7e9eb063d74ec05305fae3c46085253cd1..3ab062accc330dcd4a6464376bd39dbb8ec73492 100644 --- a/test/integration/forwarding.js +++ b/test/integration/forwarding.js @@ -13,7 +13,7 @@ const MEMORY_MODE = true; require('duniter-bma').duniter.methods.noLimit(); // Disables the HTTP limiter if (constants.MUTE_LOGS_DURING_UNIT_TESTS) { - require('../../app/lib/logger')().mute(); + require('../../app/lib/logger').NewLogger().mute(); } describe("Forwarding", function() { diff --git a/test/integration/proof-of-work.js b/test/integration/proof-of-work.js index 9488ed3e18190e0ecaf146a132b8c3bab6a494d4..70ce187f20ef53b74394362eeb3a9e2e1642c2ad 100644 --- a/test/integration/proof-of-work.js +++ b/test/integration/proof-of-work.js @@ -5,7 +5,7 @@ const should = require('should'); const toolbox = require('./tools/toolbox'); const Block = require('../../app/lib/entity/block'); const constants = require('../../app/lib/constants'); -const logger = require('../../app/lib/logger')(); +const logger = require('../../app/lib/logger').NewLogger(); const blockProver = require('../../app/modules/prover').duniter.methods.blockProver; /*** diff --git a/test/integration/tools/commit.js b/test/integration/tools/commit.js index 046e59756ffaa8ba891967538f56fa9ea8465c35..6b308127f68e84cad5aa063e18595622d703a5c2 100644 --- a/test/integration/tools/commit.js +++ b/test/integration/tools/commit.js @@ -3,7 +3,7 @@ var _ = require('underscore'); var co = require('co'); var rp = require('request-promise'); -var logger = require('../../../app/lib/logger')('test'); +var logger = require('../../../app/lib/logger').NewLogger('test'); module.exports = function makeBlockAndPost(theServer, extraProps) { return function(manualValues) { diff --git a/test/integration/tools/node.js b/test/integration/tools/node.js index fd25c02f4c8faead7ed3d0b04194f93ed6d17b93..a1fc07e964f1f8589d5aa1a6c9eb54a4e2aaf163 100644 --- a/test/integration/tools/node.js +++ b/test/integration/tools/node.js @@ -25,7 +25,7 @@ var UNTIL_TIMEOUT = 115000; function Node (dbName, options) { - var logger = require('../../../app/lib/logger')(dbName); + var logger = require('../../../app/lib/logger').NewLogger(dbName); var that = this; var started = false; that.server = null; diff --git a/test/integration/tools/toolbox.js b/test/integration/tools/toolbox.js index e9fbc3b92603aa7efb3d32160cd9ebf6629fa292..b464d5c73a1effc41aad86f19331487510b74a8b 100644 --- a/test/integration/tools/toolbox.js +++ b/test/integration/tools/toolbox.js @@ -16,7 +16,7 @@ const bma = require('duniter-bma').duniter.methods.bma; const multicaster = require('../../../app/lib/streams/multicaster'); const dtos = require('duniter-bma').duniter.methods.dtos; const duniter = require('../../../index'); -const logger = require('../../../app/lib/logger')('toolbox'); +const logger = require('../../../app/lib/logger').NewLogger('toolbox'); require('duniter-bma').duniter.methods.noLimit(); // Disables the HTTP limiter