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
JavaScript
;
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 = {}));