diff --git a/bin/node b/bin/node index 5d61cb6c..aedb5f9c 100755 --- a/bin/node +++ b/bin/node @@ -13,6 +13,7 @@ node = new bcoin.fullnode({ argv: true, env: true, logFile: true, + logConsole: true, logLevel: 'debug', db: 'leveldb', listen: true, diff --git a/bin/spvnode b/bin/spvnode index 47b7e49b..a940a9fe 100755 --- a/bin/spvnode +++ b/bin/spvnode @@ -15,6 +15,7 @@ node = bcoin.spvnode({ argv: true, env: true, logFile: true, + logConsole: true, logLevel: 'debug', db: 'leveldb', listen: true, diff --git a/bin/wallet b/bin/wallet index 3b98dcc2..d6045a6d 100755 --- a/bin/wallet +++ b/bin/wallet @@ -9,7 +9,11 @@ var server = require('../lib/wallet/server'); var wdb = server.create({ config: true, argv: true, - env: true + env: true, + logFile: true, + logConsole: true, + logLevel: 'debug', + db: 'leveldb' }); wdb.on('error', function(err) { diff --git a/lib/node/logger.js b/lib/node/logger.js index b6474de1..7b4033d3 100644 --- a/lib/node/logger.js +++ b/lib/node/logger.js @@ -36,7 +36,8 @@ function Logger(options) { this.contexts = {}; this.locker = new Lock(); - this.init(options); + if (options) + this.set(options); } /** @@ -131,14 +132,13 @@ Logger.colors = [ ]; /** - * Initialize the logger. - * @private + * Set logger options. * @param {Object} options */ -Logger.prototype.init = function init(options) { - if (!options) - return; +Logger.prototype.set = function set(options) { + assert(options); + assert(this.closed); if (typeof options === 'string') { this.setLevel(options); @@ -196,11 +196,15 @@ Logger.prototype._open = co(function* open() { if (fs.unsupported) return; - if (!this.filename) + if (!this.filename) { + this.closed = false; return; + } - if (this.stream) + if (this.stream) { + this.closed = false; return; + } if (this.shrink) yield this.truncate(); diff --git a/lib/node/node.js b/lib/node/node.js index 74f00a43..32f82baf 100644 --- a/lib/node/node.js +++ b/lib/node/node.js @@ -48,7 +48,7 @@ function Node(options) { this.stack = []; this.spv = false; - this.logger = new Logger(); + this.logger = null; this.chain = null; this.fees = null; this.mempool = null; @@ -68,24 +68,22 @@ util.inherits(Node, AsyncObject); */ Node.prototype.initOptions = function initOptions() { + var logger = new Logger(); var config = this.config; if (config.has('logger')) - this.logger = config.obj('logger'); + logger = config.obj('logger'); - if (config.bool('log-file')) - this.logger.setFile(config.location('debug.log')); + logger.set({ + filename: config.bool('log-file') + ? config.location('debug.log') + : null, + level: config.str('log-level'), + console: config.bool('log-console'), + shrink: config.bool('log-shrink') + }); - if (config.has('log-level')) - this.logger.setLevel(config.str('log-level')); - - if (config.has('log-console')) - this.logger.console = config.bool('log-console'); - - if (config.bool('debug')) - this.logger.shrink = false; - - this.logger = this.logger.context('node'); + this.logger = logger.context('node'); }; /** diff --git a/lib/wallet/server.js b/lib/wallet/server.js index ef94629d..b6ec382f 100644 --- a/lib/wallet/server.js +++ b/lib/wallet/server.js @@ -34,13 +34,23 @@ server.create = function create(options) { if (options.config) config.open('wallet.conf'); + if (config.has('logger')) + logger = config.obj('logger'); + client = new Client({ network: config.network, uri: config.str('node-uri'), apiKey: config.str('node-api-key') }); - logger.setFile(config.location('wallet.log')); + logger.set({ + filename: config.bool('log-file') + ? config.location('wallet.log') + : null, + level: config.str('log-level'), + console: config.bool('log-console'), + shrink: config.bool('log-shrink') + }); return new WalletDB({ network: config.network,