Jump To …
winston/common.html winston/config/cli-config.html winston/config/npm-config.html winston/config/syslog-config.html winston/config.html winston/exception.html winston/logger.html winston/transports/console.html winston/transports/couchdb.html winston/transports/file.html winston/transports/loggly.html winston/transports/transport.html winston/transports/webhook.html winston/transports.html winston.html

# console.js |
--- | ---
¶ |
    /*
     * console.js: Transport for outputting to the console
     *
     * (C) 2010 Charlie Robbins
     * MIT LICENCE
     *
     */

    var events = require('events'),
        util = require('util'),
        colors = require('colors'),
        common = require('../common'),
        Transport = require('./transport').Transport;
¶ ### function Console (options) #### @options {Object} Options for this instance. Constructor function for the Console transport object responsible for persisting log messages and metadata to a terminal or TTY. |
    var Console = exports.Console = function (options) {
      Transport.call(this, options);
      options = options || {};

      this.name      = 'console';
      this.json      = options.json     || false;
      this.colorize  = options.colorize || false;
      this.timestamp = typeof options.timestamp !== 'undefined' ? options.timestamp : false;
    };
¶ Inherit from `winston.Transport`. |
    util.inherits(Console, Transport);
¶ Expose the name of this Transport on the prototype |
    Console.prototype.name = 'console';
¶ ### function log (level, msg, [meta], callback) #### @level {string} Level at which to log the message. #### @msg {string} Message to log #### @meta {Object} Optional Additional metadata to attach #### @callback {function} Continuation to respond to when complete. Core logging method exposed to Winston. Metadata is optional. |
    Console.prototype.log = function (level, msg, meta, callback) {
      if (this.silent) {
        return callback(null, true);
      }

      var self = this, output = common.log({
        level:     level,
        message:   msg,
        meta:      meta,
        colorize:  this.colorize,
        timestamp: this.timestamp
      });

      if (level === 'error' || level === 'debug') {
        util.error(output);
      }
      else {
        util.puts(output);
      }
¶ Emit the `logged` event immediately because the event loop will not exit until `process.stdout` has drained anyway. |
      self.emit('logged');
      callback(null, true);
    };