UNPKG

4.47 kBJavaScriptView Raw
1/**
2 * winston.js: Top-level include defining Winston.
3 *
4 * (C) 2010 Charlie Robbins
5 * MIT LICENCE
6 */
7'use strict';
8
9var logform = require('logform');
10
11var _require = require('./winston/common'),
12 warn = _require.warn;
13/**
14 * Expose version. Use `require` method for `webpack` support.
15 * @type {string}
16 */
17
18
19exports.version = require('../package.json').version;
20/**
21 * Include transports defined by default by winston
22 * @type {Array}
23 */
24
25exports.transports = require('./winston/transports');
26/**
27 * Expose utility methods
28 * @type {Object}
29 */
30
31exports.config = require('./winston/config');
32/**
33 * Hoist format-related functionality from logform.
34 * @type {Object}
35 */
36
37exports.addColors = logform.levels;
38/**
39 * Hoist format-related functionality from logform.
40 * @type {Object}
41 */
42
43exports.format = logform.format;
44/**
45 * Expose core Logging-related prototypes.
46 * @type {function}
47 */
48
49exports.createLogger = require('./winston/create-logger');
50/**
51 * Expose core Logging-related prototypes.
52 * @type {Object}
53 */
54
55exports.ExceptionHandler = require('./winston/exception-handler');
56/**
57 * Expose core Logging-related prototypes.
58 * @type {Object}
59 */
60
61exports.RejectionHandler = require('./winston/rejection-handler');
62/**
63 * Expose core Logging-related prototypes.
64 * @type {Container}
65 */
66
67exports.Container = require('./winston/container');
68/**
69 * Expose core Logging-related prototypes.
70 * @type {Object}
71 */
72
73exports.Transport = require('winston-transport');
74/**
75 * We create and expose a default `Container` to `winston.loggers` so that the
76 * programmer may manage multiple `winston.Logger` instances without any
77 * additional overhead.
78 * @example
79 * // some-file1.js
80 * const logger = require('winston').loggers.get('something');
81 *
82 * // some-file2.js
83 * const logger = require('winston').loggers.get('something');
84 */
85
86exports.loggers = new exports.Container();
87/**
88 * We create and expose a 'defaultLogger' so that the programmer may do the
89 * following without the need to create an instance of winston.Logger directly:
90 * @example
91 * const winston = require('winston');
92 * winston.log('info', 'some message');
93 * winston.error('some error');
94 */
95
96var defaultLogger = exports.createLogger(); // Pass through the target methods onto `winston.
97
98Object.keys(exports.config.npm.levels).concat(['log', 'query', 'stream', 'add', 'remove', 'clear', 'profile', 'startTimer', 'handleExceptions', 'unhandleExceptions', 'handleRejections', 'unhandleRejections', 'configure', 'child']).forEach(function (method) {
99 return exports[method] = function () {
100 return defaultLogger[method].apply(defaultLogger, arguments);
101 };
102});
103/**
104 * Define getter / setter for the default logger level which need to be exposed
105 * by winston.
106 * @type {string}
107 */
108
109Object.defineProperty(exports, 'level', {
110 get: function get() {
111 return defaultLogger.level;
112 },
113 set: function set(val) {
114 defaultLogger.level = val;
115 }
116});
117/**
118 * Define getter for `exceptions` which replaces `handleExceptions` and
119 * `unhandleExceptions`.
120 * @type {Object}
121 */
122
123Object.defineProperty(exports, 'exceptions', {
124 get: function get() {
125 return defaultLogger.exceptions;
126 }
127});
128/**
129 * Define getters / setters for appropriate properties of the default logger
130 * which need to be exposed by winston.
131 * @type {Logger}
132 */
133
134['exitOnError'].forEach(function (prop) {
135 Object.defineProperty(exports, prop, {
136 get: function get() {
137 return defaultLogger[prop];
138 },
139 set: function set(val) {
140 defaultLogger[prop] = val;
141 }
142 });
143});
144/**
145 * The default transports and exceptionHandlers for the default winston logger.
146 * @type {Object}
147 */
148
149Object.defineProperty(exports, 'default', {
150 get: function get() {
151 return {
152 exceptionHandlers: defaultLogger.exceptionHandlers,
153 rejectionHandlers: defaultLogger.rejectionHandlers,
154 transports: defaultLogger.transports
155 };
156 }
157}); // Have friendlier breakage notices for properties that were exposed by default
158// on winston < 3.0.
159
160warn.deprecated(exports, 'setLevels');
161warn.forFunctions(exports, 'useFormat', ['cli']);
162warn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']);
163warn.forFunctions(exports, 'deprecated', ['addRewriter', 'addFilter', 'clone', 'extend']);
164warn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']); // Throw a useful error when users attempt to run `new winston.Logger`.
165
166warn.moved(exports, 'createLogger', 'Logger');
\No newline at end of file