/*** * Copyright 2015 RAPP * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Authors: Konstantinos Panayiotou * Contact: klpanagi@gmail.com * */ /** * @file * @description Debug to console output * * @author Konstantinos Panayiotou <klpanagi@gmail.com> * @copyright Rapp Project EU 2015 * */ var winston; try{ winston = require('winston'); } catch( e ){ console.error("Could not load winston node.js: " + e); } /** * @class logger * * @description Commonly used logger implementation (winston) */ var logger = function(args) { args = args || {}; this.ns = args.ns || ''; var file = args.file || false; var defaultColors= { info: 'cyan', log: '', error: 'red', warn: 'yellow', trace: 'gray', debug: 'blue', verbose: '', data: '', help: '', prompt: '' }; var colors = args.colors || defaultColors; try{ this.logger_ = new winston.Logger({ colors: colors }); this.logger_.add(winston.transports.Console, { prettyPrint: true, colorize: true, silent: false, handleExceptions: true, json: false, timestamp: true }); if (file) { this.logger_.add(winston.transports.File,{ level: 'log', filename: file, handleExceptions: true, json: false, colorize: false }); } if (args.debug) { this.logger_.add(winston.transports.Console, { level: 'debug', prettyPrint: true, colorize: true, silent: false, handleExceptions: true, json: false, timestamp: false }); } } catch( e ){ console.log(e); } }; logger.prototype.info = function( msg ){ if( typeof msg === String ){ this.logger_.log("info", "[%s] %s", this.ns, msg); } else{ this.logger_.log("info", "[%s] ", this.ns, msg); } }; logger.prototype.log = function( msg ){ if( typeof msg === String ){ this.logger_.log("debug", "[%s] %s", this.ns, msg); } else{ this.logger_.log("debug", "[%s] ", this.ns, msg); } }; logger.prototype.warn = function( msg ){ if( typeof msg === String ){ this.logger_.log("warn", "[%s] %s", this.ns, msg); } else{ this.logger_.log("warn", "[%s] ", this.ns, msg); } }; logger.prototype.error = function( msg ){ if( typeof msg === String ){ this.logger_.log("error", "[%s] %s", this.ns, msg); } else{ this.logger_.log("error", "[%s] ", this.ns, msg); } }; logger.prototype.debug = function( msg ){ this.logger_("debug", "[%s] %s", this.ns, msg); }; logger.prototype.verbose = function( msg ){ this.logger_.log("verbose", "[%s] %s", this.ns, msg); }; logger.prototype.trace = function( msg ){ this.logger_.log("trace", "[%s] %s", this.ns, msg); }; module.exports = logger;