return level == '_' ? '' : consoul.colorize ? label[winston.config.allColors[level]] : label; }; logger.exception = function (ex) { if (ex.stack) { ex.stack.split('\n').forEach(logger.error); } else { logger.error(ex.toString()); } logger.log(); }; // init the logger with sensible cli defaults logger.cli(); // override levels, must be done after calling cli() logger.setLevels({ trace: 0, debug: 1, info: 2, warn: 3, error: 4, _: 5 // generic log() call }); // override colors, must be done after calling cli() winston.addColors({ trace: 'grey', debug: 'magenta' });
// ========================================== String.prototype.endsWith = function (suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1; }; // ========================================== // LOG MANAGER // ========================================== var winston = require('winston'); winston.add(winston.transports.File, { filename: 'script/wsrnode.log' }); winston.addColors({ info: 'blue' }); winston.info("=========================================="); winston.info(" STARTING WSRNodeJS "); winston.info("=========================================="); process.on('uncaughtException', function (err) { winston.log('error', 'Caught exception: ' + err.stack); }); // ========================================== // SARAH MANAGER // ========================================== var SARAH = require('./manager/sarah.js').init();
/** * Wraps some boilerplate winston setup **/ var winston = require('winston'); var config = require('config'); var loggers = {}; // Store name->logger winston.addColors(config.get('log.colors')); function getLogger(name) { "use strict"; if (loggers.hasOwnProperty(name)) { return loggers[name]; } //Create new logger var opts = { console: { level: config.get('log.level'), colorize: true, timestamp: true, label: name } }; winston.loggers.add(name, opts); var logger = winston.loggers.get(name); logger.setLevels(config.get('log.levels')); loggers[name] = logger; return logger; }
info: 2, warn: 1, debug: 0 }, colors: { fatal: 'blue', error: 'red', info: 'green', warn: 'yellow', debug: 'grey' } }; const logger = new winston.Logger(); winston.setLevels(loggerSettings.levels); winston.addColors(loggerSettings.colors); logger.add(winston.transports.Console, settings.logger); /** * Core logging function * @param module * @param level * @param message * @param metadata */ var log = function (module, level, message, metadata) { var info = moment().format() + ' ' + module + ': '; if (_.isObject(message)) { info += util.inspect(message); } else {
var winston = require('winston'); winston.addColors(config.logging.colors); module.exports = function (filename) { var logger = new winston.Logger({ transports: [ new winston.transports.Console({ level: config.logging.consoleSetting, colorize:true }), new winston.transports.File({ level: config.logging.fileSetting, colorize:true, json: false, filename: filename }) /* ,new winston.transports.MongoDB({ host: 'localhost', db: 'logDb', collection: 'log', level: 'info', levels: customLevels.levels, handleExceptions: true }) */ ] }); //logger.setLevels(winston.config.syslog.levels); logger.setLevels(config.logging.levels); logger.exitOnError = false;
initialize: function() { BaseModel.prototype.initialize.apply(this); global.logger = new winston.Logger(); logger.setLevels({ info: 0, warn: 1, error: 2 }); winston.addColors({ info: 'green', warn: 'yellow', error: 'red' }); // Set up console logger. if (this.get('console').enabled) { logger.add(winston.transports.Console, this.get('console')); } // Set up file logger. if (this.get('file').enabled) { // Create the log file folder. var dir = path.dirname(this.get('file').filename); if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } this.get('file').timestamp = function() { return moment().format('YYYY-MM-DD HH:mm:ss'); }; logger.add(winston.transports.DailyRotateFile, this.get('file')); } // Set up email. if (this.get('mail').enabled) { this.get('mail').subject = this.get('mail').subject ? this.get('mail').subject.replace('{hostname}', os.hostname()) : os.hostname(); logger.add(require('winston-mail').Mail, this.get('mail')); } // Set up loggly. if (this.get('loggly').enabled) { var opts = this.get('loggly'); opts.tags = opts.tags ? [opts.tags] : []; opts.tags.push(os.hostname()); logger.add(require('winston-loggly').Loggly, opts); } // Set up Windows event log. Sort of hacky. Piggy-back on the console logger and log to the event log whenever it does. if (this.get('eventLog').enabled) { this.registerEventSource(); logger.on('logging', _.bind(function(transport, level, msg, meta) { if (transport.name == 'console') { level = this._winstonLevelToWindowsLevel[level]; this.writeEventLog(level, msg, meta); } }, this)); } // Set up Google Analytics. if (this.get('google').enabled) { this._google = ua(this.get('google').accountId, os.hostname(), { strictCidFormat: false }); } // Set up the cache, which is just a history of log messages. if (this.get('cacheAmount')) { this.set('logCache', []); this.set('eventCache', []); logger.on('logging', _.bind(function(transport, level, msg, meta) { if (transport.name == 'console') { var cache = this.get('logCache'); cache.push({ time: moment().format('YYYY-MM-DD HH:mm:ss'), level: level, msg: msg }); if (cache.length > this.get('cacheAmount')) { cache.splice(0, cache.length - this.get('cacheAmount')); } } }, this)); } $$network.transports.socketToApp.sockets.on('connection', _.bind(function(socket) { // Log on request from the app. socket.on('log', _.bind(this._logMessage, this)); // Track events on request from the app. socket.on('event', _.bind(this._logEvent, this)); }, this)); // Log on request from the app. $$network.transports.oscFromApp.on('log', _.bind(this._logMessage, this)); // Track events on request from the app. $$network.transports.oscFromApp.on('event', _.bind(this._logEvent, this)); },
var logentries = require('node-logentries'); var config = require('./config'); var log = logentries.logger({ token: config.get('logentries:token'), //'49b3c292-089e-4d6e-a58c-9bfaddb3ac86', levels: config.get('logentries:custom:levels') // myCustomLevels.levels }); // use as a winston transport var winston = require('winston'); winston.setLevels(config.get('logentries:custom:levels')); winston.addColors(config.get('logentries:custom:colors')); winston .remove(winston.transports.Console) .add(winston.transports.Console, { colorize: true, timestamp: true }); log.winston(winston, { level: 'debug' }); // display logentries errors in console. log.on('error', function(err) { console.log('logentries error: ' + err); }); module.exports = winston;
winston.error('Loglevel must be one of: ', 'quiet, verbose, data, info, warn, error, debug'); process.exit(1); } log = new (winston.Logger)({ transports: [new winston.transports.Console({ level: program.loglevel, levels: loglevels.levels, colorize: true })], level: program.loglevel, levels: loglevels.levels, colorize: true }); winston.addColors(loglevels.colors); // have to do this before changing directory if (program.scraper) program.scraper = path.resolve(program.scraper) if (program.scraperdir) program.scraperdir = path.resolve(program.scraperdir) // create output directory if (!fs.existsSync(program.output)) { log.debug('creating output directory: ' + program.output); fs.mkdirSync(program.output); } process.chdir(program.output); tld = process.cwd(); if (program.hasOwnProperty('logfile')) { log.add(winston.transports.File, {