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 : |
/** * stream.js: Transport for outputting to any arbitrary stream. * * (C) 2010 Charlie Robbins * MIT LICENCE */ 'use strict'; const isStream = require('is-stream'); const { MESSAGE } = require('triple-beam'); const os = require('os'); const TransportStream = require('winston-transport'); /** * Transport for outputting to any arbitrary stream. * @type {Stream} * @extends {TransportStream} */ module.exports = class Stream 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); if (!options.stream || !isStream(options.stream)) { throw new Error('options.stream is required.'); } // We need to listen for drain events when write() returns false. This can // make node mad at times. this._stream = options.stream; this._stream.setMaxListeners(Infinity); this.isObjectMode = options.stream._writableState.objectMode; this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; } /** * 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)); if (this.isObjectMode) { this._stream.write(info); if (callback) { callback(); // eslint-disable-line callback-return } return; } this._stream.write(`${info[MESSAGE]}${this.eol}`); if (callback) { callback(); // eslint-disable-line callback-return } return; } };