123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * profiler.js: TODO: add file header description.
- *
- * (C) 2010 Charlie Robbins
- * MIT LICENCE
- */
- 'use strict';
- /**
- * TODO: add class description.
- * @type {Profiler}
- * @private
- */
- module.exports = class Profiler {
- /**
- * Constructor function for the Profiler instance used by
- * `Logger.prototype.startTimer`. When done is called the timer will finish
- * and log the duration.
- * @param {!Logger} logger - TODO: add param description.
- * @private
- */
- constructor(logger) {
- if (!logger) {
- throw new Error('Logger is required for profiling.');
- }
- this.logger = logger;
- this.start = Date.now();
- }
- /**
- * Ends the current timer (i.e. Profiler) instance and logs the `msg` along
- * with the duration since creation.
- * @returns {mixed} - TODO: add return description.
- * @private
- */
- done(...args) {
- if (typeof args[args.length - 1] === 'function') {
- // eslint-disable-next-line no-console
- console.warn('Callback function no longer supported as of winston@3.0.0');
- args.pop();
- }
- const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};
- info.level = info.level || 'info';
- info.durationMs = (Date.now()) - this.start;
- return this.logger.write(info);
- }
- };
|