123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- /*
- * winston.js: Top-level include defining Winston.
- *
- * (C) 2010 Charlie Robbins
- * MIT LICENCE
- *
- */
- var winston = exports;
- //
- // use require method for webpack bundle
- //
- winston.version = require('../package.json').version
- //
- // Include transports defined by default by winston
- //
- winston.transports = require('./winston/transports');
- //
- // Expose utility methods
- //
- var common = require('./winston/common');
- winston.hash = common.hash;
- winston.clone = common.clone;
- winston.longestElement = common.longestElement;
- winston.exception = require('./winston/exception');
- winston.config = require('./winston/config');
- winston.addColors = winston.config.addColors;
- //
- // Expose core Logging-related prototypes.
- //
- winston.Container = require('./winston/container').Container;
- winston.Logger = require('./winston/logger').Logger;
- winston.Transport = require('./winston/transports/transport').Transport;
- //
- // We create and expose a default `Container` to `winston.loggers` so that the
- // programmer may manage multiple `winston.Logger` instances without any additional overhead.
- //
- // ### some-file1.js
- //
- // var logger = require('winston').loggers.get('something');
- //
- // ### some-file2.js
- //
- // var logger = require('winston').loggers.get('something');
- //
- winston.loggers = new winston.Container();
- //
- // We create and expose a 'defaultLogger' so that the programmer may do the
- // following without the need to create an instance of winston.Logger directly:
- //
- // var winston = require('winston');
- // winston.log('info', 'some message');
- // winston.error('some error');
- //
- var defaultLogger = new winston.Logger({
- transports: [new winston.transports.Console()]
- });
- //
- // Pass through the target methods onto `winston`.
- //
- var methods = [
- 'log',
- 'query',
- 'stream',
- 'add',
- 'remove',
- 'clear',
- 'profile',
- 'startTimer',
- 'extend',
- 'cli',
- 'handleExceptions',
- 'unhandleExceptions',
- 'configure'
- ];
- common.setLevels(winston, null, defaultLogger.levels);
- methods.forEach(function (method) {
- winston[method] = function () {
- return defaultLogger[method].apply(defaultLogger, arguments);
- };
- });
- //
- // ### function cli ()
- // Configures the default winston logger to have the
- // settings for command-line interfaces: no timestamp,
- // colors enabled, padded output, and additional levels.
- //
- winston.cli = function () {
- winston.padLevels = true;
- common.setLevels(winston, defaultLogger.levels, winston.config.cli.levels);
- defaultLogger.setLevels(winston.config.cli.levels);
- winston.config.addColors(winston.config.cli.colors);
- if (defaultLogger.transports.console) {
- defaultLogger.transports.console.colorize = true;
- defaultLogger.transports.console.timestamp = false;
- }
- return winston;
- };
- //
- // ### function setLevels (target)
- // #### @target {Object} Target levels to use
- // Sets the `target` levels specified on the default winston logger.
- //
- winston.setLevels = function (target) {
- common.setLevels(winston, defaultLogger.levels, target);
- defaultLogger.setLevels(target);
- };
- //
- // Define getter / setter for the default logger level
- // which need to be exposed by winston.
- //
- Object.defineProperty(winston, 'level', {
- get: function () {
- return defaultLogger.level;
- },
- set: function (val) {
- defaultLogger.level = val;
- Object.keys(defaultLogger.transports).forEach(function(key) {
- defaultLogger.transports[key].level = val;
- });
- }
- });
- //
- // Define getters / setters for appropriate properties of the
- // default logger which need to be exposed by winston.
- //
- ['emitErrs', 'exitOnError', 'padLevels', 'levelLength', 'stripColors'].forEach(function (prop) {
- Object.defineProperty(winston, prop, {
- get: function () {
- return defaultLogger[prop];
- },
- set: function (val) {
- defaultLogger[prop] = val;
- }
- });
- });
- //
- // @default {Object}
- // The default transports and exceptionHandlers for
- // the default winston logger.
- //
- Object.defineProperty(winston, 'default', {
- get: function () {
- return {
- transports: defaultLogger.transports,
- exceptionHandlers: defaultLogger.exceptionHandlers
- };
- }
- });
|