Skip to content

Instantly share code, notes, and snippets.

@AJamesPhillips
Last active February 4, 2019 13:19
Show Gist options
  • Save AJamesPhillips/07ce4c380e9d7a44e19e069524a12a6e to your computer and use it in GitHub Desktop.
Save AJamesPhillips/07ce4c380e9d7a44e19e069524a12a6e to your computer and use it in GitHub Desktop.
fake logger for tests
const LOG_LEVELS = {
DEBUG: 1000,
INFO: 2000,
WARN: 3000,
ERROR: 4000,
NONE: 5000
}
export function makeFakeLogger (log_level_override) {
const level = log_level_override || process.env.LOGGING_LEVEL || 'NONE'
const log_level = LOG_LEVELS[level] || LOG_LEVELS.DEBUG
const null_logger = () => {}
return {
debug: log_level > LOG_LEVELS.DEBUG ? null_logger : console.debug,
info: log_level > LOG_LEVELS.INFO ? null_logger : console.info,
log: log_level > LOG_LEVELS.INFO ? null_logger : console.log,
warn: log_level > LOG_LEVELS.WARN ? null_logger : console.warn,
error: log_level > LOG_LEVELS.ERROR ? null_logger : console.error
}
}
// More advanced logger:
export const logger_factory = ({ prefix_args = [], log_level = LOG_LEVELS.DEBUG } = {}) => {
const null_logger = () => {}
const config = (args = {}) => logger_factory({
prefix_args: [...prefix_args, ...(args.curry_args || [])],
log_level: args.log_level || log_level,
})
return {
debug: (...log_args) => log_level > LOG_LEVELS.DEBUG ? null_logger : console.debug("[DEBUG] ", ...prefix_args, ...log_args),
info: (...log_args) => log_level > LOG_LEVELS.INFO ? null_logger : console.info("[INFO] ", ...prefix_args, ...log_args),
warn: (...log_args) => log_level > LOG_LEVELS.WARN ? null_logger : console.warn("[WARN] ", ...prefix_args, ...log_args),
error: (...log_args) => log_level > LOG_LEVELS.ERROR ? null_logger : console.error("[ERROR] ", ...prefix_args, ...log_args),
curry: (...curry_args) => config({ curry_args }),
level: (log_level) => config({ log_level }),
config,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment