From 82d404a973cfe24a2a632859cbb6ab8958d48e9e Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Sat, 25 Aug 2018 23:49:44 -0700 Subject: [PATCH] Introduce different log levels --- modules/ingestLogs.js | 9 +++++---- modules/utils/fetchNpmPackage.js | 7 +++++-- modules/utils/fetchNpmPackageInfo.js | 5 ++--- modules/utils/logging.js | 24 ++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 modules/utils/logging.js diff --git a/modules/ingestLogs.js b/modules/ingestLogs.js index 6c7a45c..c2d4017 100644 --- a/modules/ingestLogs.js +++ b/modules/ingestLogs.js @@ -5,6 +5,7 @@ const addDays = require("date-fns/add_days"); const db = require("./utils/data"); const isValidPackageName = require("./utils/isValidPackageName"); const parsePackageURL = require("./utils/parsePackageURL"); +const logging = require("./utils/logging"); const CloudflareAPI = require("./CloudflareAPI"); const StatsAPI = require("./StatsAPI"); @@ -157,8 +158,8 @@ function ingestLogsForZone(zone, startDate, endDate) { ).then(stream => { const endFetchTime = Date.now(); - console.log( - "info: Fetched logs for %s from %s to %s (%dms)", + logging.info( + "Fetched logs for %s from %s to %s (%dms)", zone.name, stringifySeconds(startSeconds), stringifySeconds(endSeconds), @@ -170,8 +171,8 @@ function ingestLogsForZone(zone, startDate, endDate) { return processLogs(stream).then(totalEntries => { const endProcessTime = Date.now(); - console.log( - "info: Processed %d log entries for %s (%dms)", + logging.info( + "Processed %d log entries for %s (%dms)", totalEntries, zone.name, endProcessTime - startProcessTime diff --git a/modules/utils/fetchNpmPackage.js b/modules/utils/fetchNpmPackage.js index 9bce434..8dfbb7a 100644 --- a/modules/utils/fetchNpmPackage.js +++ b/modules/utils/fetchNpmPackage.js @@ -5,13 +5,16 @@ const tar = require("tar-stream"); const bufferStream = require("./bufferStream"); const agent = require("./registryAgent"); +const logging = require("./logging"); function fetchNpmPackage(packageConfig) { return new Promise((resolve, reject) => { const tarballURL = packageConfig.dist.tarball; - console.log( - `info: Fetching package for ${packageConfig.name} from ${tarballURL}` + logging.debug( + "Fetching package for %s from %s", + packageConfig.name, + tarballURL ); const { hostname, pathname } = url.parse(tarballURL); diff --git a/modules/utils/fetchNpmPackageInfo.js b/modules/utils/fetchNpmPackageInfo.js index 43ebc1c..c8592a6 100644 --- a/modules/utils/fetchNpmPackageInfo.js +++ b/modules/utils/fetchNpmPackageInfo.js @@ -4,6 +4,7 @@ const https = require("https"); const serverConfig = require("../serverConfig"); const bufferStream = require("./bufferStream"); const agent = require("./registryAgent"); +const logging = require("./logging"); function parseJSON(res) { return bufferStream(res).then(JSON.parse); @@ -18,9 +19,7 @@ function fetchNpmPackageInfo(packageName) { const infoURL = `${serverConfig.registryURL}/${encodedPackageName}`; - console.log( - `info: Fetching package info for ${packageName} from ${infoURL}` - ); + logging.debug("Fetching package info for %s from %s", packageName, infoURL); const { hostname, pathname } = url.parse(infoURL); const options = { diff --git a/modules/utils/logging.js b/modules/utils/logging.js new file mode 100644 index 0000000..4dac79d --- /dev/null +++ b/modules/utils/logging.js @@ -0,0 +1,24 @@ +const log = console.log.bind(console); + +function noop() {} + +let debug, info, warn; + +if (process.env.LOG_LEVEL === "none") { + debug = info = warn = noop; +} else if (process.env.LOG_LEVEL === "debug") { + debug = info = warn = log; +} else if (process.env.LOG_LEVEL === "warn") { + debug = info = noop; + warn = log; +} else { + // default LOG_LEVEL = "info" + debug = noop; + info = warn = log; +} + +module.exports = { + debug, + info, + warn +};