UNPKG

dfp-lib

Version:

This project hosts the Node.JS client library for the SOAP-based DFP API at Google.

56 lines (55 loc) 1.91 kB
"use strict"; const fs = require("fs"); var Logger; (function (Logger) { Logger.SOAP_XML_LOG = 'soap_xml'; Logger.REQUEST_INFO_LOG = 'request_info'; var Level; (function (Level) { Level[Level["DEBUG"] = 0] = "DEBUG"; Level[Level["INFO"] = 1] = "INFO"; Level[Level["ERROR"] = 2] = "ERROR"; Level[Level["FATAL"] = 3] = "FATAL"; })(Level = Logger.Level || (Logger.Level = {})); ; const logLevels = {}; const logFiles = {}; function logToFile(log, filePath) { logTo(log, filePath); } Logger.logToFile = logToFile; function logTo(log, handleLocation) { let appenders = logFiles[log] || (logFiles[log] = []); if (appenders.indexOf(handleLocation) === -1) { appenders.push(handleLocation); } } function setLogLevel(log, level) { logLevels[log] = level; } Logger.setLogLevel = setLogLevel; function log(log, message, level = null) { level = (level == null) ? Level.INFO : level; logToAllAppenders(log, message, level); } Logger.log = log; function logToAllAppenders(log, message, level) { if (logFiles[log]) { const logLevel = logLevels[log] || Level.INFO; if (shouldLog(logLevel, level)) { logToAppenders(logFiles[log], message, level); } } } function shouldLog(logLevel, messageLevel) { return logLevel <= messageLevel; } function logToAppenders(appenders, message, level) { appenders.forEach((handle) => writeMessage(handle, message, level)); } function writeMessage(handleLocation, message, level) { const iso = (new Date()).toISOString(); const line = `[${iso}-${Level[level]}] ${message}\n`; fs.appendFile(handleLocation, line, err => { }); } })(Logger = exports.Logger || (exports.Logger = {}));