UNPKG

iamqp

Version:

RabbitMQ wrapper for NodeJS with several produce(reply)/consume scenarios

188 lines (156 loc) 10 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>console_logger.js - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav> <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Common.html">Common</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_commonPublishPreparations">_commonPublishPreparations</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_emitAndDispatchError">_emitAndDispatchError</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_logData">_logData</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_messageDispatcherWrapper">_messageDispatcherWrapper</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_parseConsumedMessage">_parseConsumedMessage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#_preparePublishingMessage">_preparePublishingMessage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#closeConnection">closeConnection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#getEventer">getEventer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#isReady">isReady</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#openConnection">openConnection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Common.html#toString">toString</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="ConsoleLogger.html">ConsoleLogger</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="ConsoleLogger.html#error">error</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="ConsoleLogger.html#info">info</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="ConsoleLogger.html#log">log</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="ConsoleLogger.html#warn">warn</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="FanoutConsumer.html">FanoutConsumer</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="FanoutProducer.html">FanoutProducer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="FanoutProducer.html#fanout">fanout</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="PlainConsumer.html">PlainConsumer</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="PlainProducer.html">PlainProducer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="PlainProducer.html#publish">publish</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="RpcClient.html">RpcClient</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="RpcClient.html#callRemote">callRemote</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="RpcServer.html">RpcServer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="RpcServer.html#respond">respond</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="UUIDv4.html">UUIDv4</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UUIDv4.html#generate">generate</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li> </nav> <div id="main"> <h1 class="page-title">console_logger.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>const chalk = require('chalk') const SysLogger = require('ain2') /** * Interface some coloured terminal logging and syslog on Linux. * * Provides four types of logs: * &lt;ul> * &lt;li>&lt;b>info (blue)&lt;/b> - operational messages that require no action&lt;/li> * &lt;li>&lt;b>log (yellow)&lt;/b> - useful information (in terms of debugging for instance)&lt;/li> * &lt;li>&lt;b>warn (magenta)&lt;/b> - do not stops the execution but have the potential to&lt;/li> * &lt;li>&lt;b>error (red)&lt;/b> - errors that are stopping some operational flow&lt;/li> * &lt;/ul> * * Provides an option to use &lt;a href="https://en.wikipedia.org/wiki/Syslog">syslog&lt;/a> - print to systems log. * This was tested on &lt;code>Ubuntu 16.04&lt;/code>. * To enable this, open &lt;code>/etc/rsyslog.conf&lt;/code> and enable &lt;i>UDP&lt;/i> on port &lt;i>514&lt;/i>. * This is usually just commented and needs uncommenting: * &lt;pre> * # provides UDP syslog reception * module(load="imudp") * input(type="imudp" port="514") * &lt;/pre> * ... and restart the service with &lt;code>./etc/init.d/rsyslog restart&lt;/code>. * The logs should appear in &lt;code>/var/log/syslog&lt;/code>. * * To control the logging, use environmental variables: * &lt;ul> * &lt;li>&lt;code>DBTRC_SYSLOG_F&lt;/code> set to &lt;code>OK&lt;/code> to enable syslog logging * &lt;pre> * DBTRC_SYSLOG_F=OK node ... * &lt;/pre> * &lt;/li> * &lt;li>&lt;code>DBTRC_TERM_F&lt;/code> set to &lt;code>OK&lt;/code> to enable terminal logging * &lt;pre> * DBTRC_TERM_F=OK node ... * &lt;/pre> * &lt;/li> * &lt;/ul> */ class ConsoleLogger { /** * @param {string} moduleName the name of the module - something to represent the instance */ constructor (moduleName) { this._module_name = moduleName.toString() || '' this._sysLogger = null this._terminalWriteEnabled = ( Object.prototype.hasOwnProperty.call(process.env, 'DBTRC_TERM_F') &amp;&amp; process.env.DBTRC_TERM_F === 'OK' ) if ( Object.prototype.hasOwnProperty.call(process.env, 'DBTRC_SYSLOG_F') &amp;&amp; process.env.DBTRC_SYSLOG_F === 'OK' ) { this._sysLogger = new SysLogger() } } /** * Do the actual logging. * @param {string} loggerType * @param {string} message * @private */ _thisLogger (loggerType, message) { if (this._sysLogger) { this._sysLogger[loggerType]('[' + this._module_name + '] ' + message.toString()) } if (!this._terminalWriteEnabled) { return } let typeChalk = 'blue' switch (loggerType.toLowerCase()) { case 'error': typeChalk = 'red' break case 'warn': typeChalk = 'magenta' break case 'log': typeChalk = 'yellow' break default: break } console.log(chalk.bold[typeChalk]('[' + this._module_name + '] ') + message.toString()) } /** * Produce an error message. * @param {string} logMessage */ error (logMessage) { this._thisLogger('error', logMessage) } /** * Produce a info message. * @param {string} logMessage */ info (logMessage) { this._thisLogger('info', logMessage) } /** * Produce a warning message. * @param {string} logMessage */ warn (logMessage) { this._thisLogger('warn', logMessage) } /** * Produce a log message. * @param {string} logMessage */ log (logMessage) { this._thisLogger('log', logMessage) } } module.exports = ConsoleLogger </code></pre> </article> </section> </div> <br class="clear"> <footer> Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.2</a> on Sun Aug 04 2019 22:10:47 GMT+0200 (Central European Summer Time) using the Minami theme. </footer> <script>prettyPrint();</script> <script src="scripts/linenumber.js"></script> </body> </html>