UNPKG

@percy/agent

Version:

An agent process for integrating with Percy.

38 lines (37 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createFileLogger = exports.logError = exports.profile = exports.addLogDate = void 0; const colors = require("colors"); const winston = require("winston"); const LOG_LEVEL = process.env.LOG_LEVEL || 'info'; function addLogDate(log) { return `${log} | ${new Date().toString()}`; } exports.addLogDate = addLogDate; function createConsoleTransport() { return new winston.transports.Console({ level: LOG_LEVEL, stderrLevels: ['error'], format: winston.format.combine(winston.format.label({ label: colors.magenta('percy') }), winston.format.printf(({ label, message }) => `[${label}] ${message}`)), }); } const logger = winston.createLogger({ transports: [createConsoleTransport()], }); function profile(id, meta) { if (LOG_LEVEL === 'debug') { return logger.profile(id, Object.assign({ level: 'debug' }, meta)); } } exports.profile = profile; function logError(error) { logger.error(addLogDate(`${error.name} ${error.message}`)); logger.debug(addLogDate(error)); } exports.logError = logError; function createFileLogger(filename) { const fileTransport = new winston.transports.File({ filename, level: 'debug' }); return winston.createLogger({ transports: [createConsoleTransport(), fileTransport] }); } exports.createFileLogger = createFileLogger; exports.default = logger;