oidc-client
Version:
OpenID Connect (OIDC) & OAuth2 client library
84 lines (73 loc) • 1.95 kB
JavaScript
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
let nopLogger = {
debug(){},
info(){},
warn(){},
error(){}
};
const NONE = 0;
const ERROR = 1;
const WARN = 2;
const INFO = 3;
const DEBUG = 4;
let logger;
let level;
export class Log {
static get NONE() {return NONE};
static get ERROR() {return ERROR};
static get WARN() {return WARN};
static get INFO() {return INFO};
static get DEBUG() {return DEBUG};
static reset(){
level = INFO;
logger = nopLogger;
}
static get level(){
return level;
}
static set level(value){
if (NONE <= value && value <= DEBUG){
level = value;
}
else {
throw new Error("Invalid log level");
}
}
static get logger(){
return logger;
}
static set logger(value){
if (!value.debug && value.info) {
// just to stay backwards compat. can remove in 2.0
value.debug = value.info;
}
if (value.debug && value.info && value.warn && value.error){
logger = value;
}
else {
throw new Error("Invalid logger");
}
}
static debug(...args){
if (level >= DEBUG){
logger.debug.apply(logger, Array.from(args));
}
}
static info(...args){
if (level >= INFO){
logger.info.apply(logger, Array.from(args));
}
}
static warn(...args){
if (level >= WARN){
logger.warn.apply(logger, Array.from(args));
}
}
static error(...args){
if (level >= ERROR){
logger.error.apply(logger, Array.from(args));
}
}
}
Log.reset();