Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /opt/push-server/node_modules/winston/lib/winston/transports/ |
Upload File : |
/* eslint-disable no-console */ /* * console.js: Transport for outputting to the console. * * (C) 2010 Charlie Robbins * MIT LICENCE */ 'use strict'; const os = require('os'); const { LEVEL, MESSAGE } = require('triple-beam'); const TransportStream = require('winston-transport'); /** * Transport for outputting to the console. * @type {Console} * @extends {TransportStream} */ module.exports = class Console extends TransportStream { /** * Constructor function for the Console transport object responsible for * persisting log messages and metadata to a terminal or TTY. * @param {!Object} [options={}] - Options for this instance. */ constructor(options = {}) { super(options); // Expose the name of this Transport on the prototype this.name = options.name || 'console'; this.stderrLevels = this._stringArrayToSet(options.stderrLevels); this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels); this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; this.setMaxListeners(30); } /** * Core logging method exposed to Winston. * @param {Object} info - TODO: add param description. * @param {Function} callback - TODO: add param description. * @returns {undefined} */ log(info, callback) { setImmediate(() => this.emit('logged', info)); // Remark: what if there is no raw...? if (this.stderrLevels[info[LEVEL]]) { if (console._stderr) { // Node.js maps `process.stderr` to `console._stderr`. console._stderr.write(`${info[MESSAGE]}${this.eol}`); } else { // console.error adds a newline console.error(info[MESSAGE]); } if (callback) { callback(); // eslint-disable-line callback-return } return; } else if (this.consoleWarnLevels[info[LEVEL]]) { if (console._stderr) { // Node.js maps `process.stderr` to `console._stderr`. // in Node.js console.warn is an alias for console.error console._stderr.write(`${info[MESSAGE]}${this.eol}`); } else { // console.warn adds a newline console.warn(info[MESSAGE]); } if (callback) { callback(); // eslint-disable-line callback-return } return; } if (console._stdout) { // Node.js maps `process.stdout` to `console._stdout`. console._stdout.write(`${info[MESSAGE]}${this.eol}`); } else { // console.log adds a newline. console.log(info[MESSAGE]); } if (callback) { callback(); // eslint-disable-line callback-return } } /** * Returns a Set-like object with strArray's elements as keys (each with the * value true). * @param {Array} strArray - Array of Set-elements as strings. * @param {?string} [errMsg] - Custom error message thrown on invalid input. * @returns {Object} - TODO: add return description. * @private */ _stringArrayToSet(strArray, errMsg) { if (!strArray) return {}; errMsg = errMsg || 'Cannot make set from type other than Array of string elements'; if (!Array.isArray(strArray)) { throw new Error(errMsg); } return strArray.reduce((set, el) => { if (typeof el !== 'string') { throw new Error(errMsg); } set[el] = true; return set; }, {}); } };