UNPKG

periodicjs

Version:

Periodic is a rapid enterprise application framework for data driven web and mobile applications.

150 lines (127 loc) 5.58 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: lib/init/logger.js</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="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: lib/init/logger.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>'use strict'; const winston = require('winston'); const path = require('path'); function getDefaultWinstonLoggerConfig(options) { try { const { periodic, fileNamePathAddition, } = options; return (periodic.environment === 'production') ? { transports: [ new(winston.transports.Console)({ level: 'error', colorize: true, }), new(winston.transports.File)({ filename: path.join(periodic.config.app_root, 'logs', fileNamePathAddition + '.exception-errors.log'), }), ], exitOnError: this.settings.logger.winston_exit_on_error, handleExceptions: true, } : { transports: [ new(winston.transports.Console)({ colorize: true, level: 'silly', prettyPrint: true, timestamp: true, }), new(winston.transports.File)({ filename: path.join(periodic.config.app_root, 'logs', fileNamePathAddition + '.app.log'), }), ], exitOnError: this.settings.logger.winston_exit_on_error, exceptionHandlers: [ new(winston.transports.Console)({ colorize: true, json: true, prettyPrint: true, timestamp: true, }), new(winston.transports.File)({ filename: path.join(periodic.config.app_root, 'logs', fileNamePathAddition + '.exception-errors.log'), }), ], handleExceptions: true, }; } catch (e) { this.logger.error(e); return {}; } }; /** * configures winston * * @returns {Promise} configureLogger sets up winston */ function configureLogger() { return new Promise((resolve, reject) => { try { const d = new Date(); const fileNamePathAddition = this.environment + '-' + d.getUTCFullYear() + '.' + (d.getUTCMonth() + 1) + '.' + d.getUTCDate(); if (this.settings.logger.use_winston_logger &amp;&amp; this.environment !== 'DISABLELOG') { const winstonLogger = new(winston.Logger)(); winstonLogger.exitOnError = this.settings.logger.winston_exit_on_error; if (this.settings.logger.use_standard_logging) { winstonLogger.configure(getDefaultWinstonLoggerConfig.call(this,{ fileNamePathAddition, periodic: this, })); } this.logger = winstonLogger; } resolve(true); } catch (e) { reject(e); } }); } function catchProcessErrors(options) { const catchProcess = options.process || process; return new Promise((resolve, reject) => { try { if (!this.logger) this.logger = console; catchProcess.on('uncaughtException', this.logger.error.bind(this.logger)); catchProcess.on('warning', this.logger.warn.bind(this.logger)); catchProcess.on('unhandledRejection', this.logger.error.bind(this.logger)); resolve(this.config); } catch (e) { reject(e); } }); } module.exports = { configureLogger, catchProcessErrors, getDefaultWinstonLoggerConfig, };</code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-periodic.html">periodic</a></li></ul><h3>Classes</h3><ul><li><a href="Periodic.html">Periodic</a></li><li><a href="Periodic.Periodic.html">Periodic</a></li></ul><h3>Global</h3><ul><li><a href="global.html#_admin_prefix">_admin_prefix</a></li><li><a href="global.html#_manifest_prefix">_manifest_prefix</a></li><li><a href="global.html#_route_prefix">_route_prefix</a></li><li><a href="global.html#all_prefixes">all_prefixes</a></li><li><a href="global.html#configRuntimeEnvironment">configRuntimeEnvironment</a></li><li><a href="global.html#configureLogger">configureLogger</a></li><li><a href="global.html#configureLowkie">configureLowkie</a></li><li><a href="global.html#configureMongoose">configureMongoose</a></li><li><a href="global.html#configureSequelize">configureSequelize</a></li><li><a href="global.html#configureViews">configureViews</a></li><li><a href="global.html#endTimer">endTimer</a></li><li><a href="global.html#formatResponse">formatResponse</a></li><li><a href="global.html#getEnv">getEnv</a></li><li><a href="global.html#handler">handler</a></li><li><a href="global.html#initializeExpress">initializeExpress</a></li><li><a href="global.html#loadConfiguration">loadConfiguration</a></li><li><a href="global.html#setAppRunningEnv">setAppRunningEnv</a></li><li><a href="global.html#setUpFolderStructure">setUpFolderStructure</a></li><li><a href="global.html#startTimer">startTimer</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Jul 18 2018 23:08:12 GMT-0400 (Eastern Daylight Time) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>