@percy/agent
Version:
An agent process for integrating with Percy.
38 lines (37 loc) • 1.43 kB
JavaScript
;
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;