UNPKG

@creejs/commons-logging

Version:
3 lines (2 loc) 9.84 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).CommonsLang={})}(this,function(e){"use strict";var r={isFunction:function(e){return"function"==typeof e},isNumber:function(e){return null!=e&&"number"==typeof e},isNil:t,isString:n};function t(e){return null==e}function n(e){return null!=e&&"string"==typeof e}var o={assertNotNil:function(e,r){if(t(e))throw new Error((r?'"'+r+'" ':"")+"Should Not Nil")},assertString:function(e,r){if(!n(e))throw new Error(`${r?'"'+r+'" ':""}Not String: type=${typeof e} value=${i(e)}`)}};function i(e){if(null===e)return"null";if(void 0===e)return"undefined";const r=typeof e;if("string"===r)return e;if("symbol"===r)return`Symbol(${e.description})`;if("function"===r)return`Function ${e.name}(){}`;if(e instanceof String)return e.toString();if(Number.isNaN(e))return"NaN";if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(e instanceof Error)return`${e.constructor.name}: ${e.message}`;if(e instanceof Promise)return"Promise";if(e instanceof Set)return`Set: ${i(Array.from(e))}`;if(e instanceof Map)return`Map: ${i(Array.from(e.entries()))}`;if(e instanceof RegExp)return e.toString();if(Array.isArray(e))return`[${e.map(i).join(", ")}]`;let t;try{t=JSON.stringify(e)}catch(r){t=e.toString()}return t}new TextDecoder,new TextEncoder;const{isNumber:s,isString:l}=r,a="TRACE",u="DEBUG",c="INFO",g="WARN",f="ERROR",d="FATAL",v=new Set([a,u,c,g,f,d,"OFF","ALL"]),h={OFF:-1,FATAL:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5,ALL:6},L={TRACE:a,DEBUG:u,INFO:c,WARN:g,ERROR:f,FATAL:d,OFF:"OFF"},p=new Map;for(const[e,r]of Object.entries(h))p.set(r,e);const w=h.ERROR;function E(e){if(s(e))return p.get(e)}function y(e){if(l(e))return h[e.toUpperCase()]}function _(e){if(!s(e))throw new Error(`Level Not Number: type=${typeof e} value=${e}`);if(e<h.OFF||e>h.ALL)throw new Error(`Not Valid Level: ${e}, Expect between ${h.OFF} and ${h.ALL}`)}const b={Name:L,Level:h,DefaultLevel:w,hasLevel:function(e){return p.has(e)},hasName:function(e){return!!l(e)&&v.has(e.toUpperCase())},assertLevel:_,LevelName:L,LevelValue:h,value2Name:E,name2Value:y},{Level:m,DefaultLevel:N,assertLevel:F}=b,{assertString:P}=o;class S{constructor(e,r,t=N){P(e),F(t),this._name=e,this._nativeLogger=r,this._level=t}get nativeLogger(){return this._nativeLogger}get level(){return this._level}get name(){return this._name}get fatalEnabled(){return this.level>=m.FATAL}get errorEnabled(){return this.level>=m.ERROR}get warnEnabled(){return this.level>=m.WARN}get debugEnabled(){return this.level>=m.DEBUG}get infoEnabled(){return this.level>=m.INFO}get traceEnabled(){return this.level>=m.TRACE}setLevel(e){b.assertLevel(e),this._setLevel(e),this._level=e}fatal(...e){this.fatalEnabled&&this._fatal(...e)}error(...e){this.errorEnabled&&this._error(...e)}warn(...e){this.warnEnabled&&this._warn(...e)}debug(...e){this.debugEnabled&&this._debug(...e)}info(...e){this.infoEnabled&&this._info(...e)}trace(...e){this.traceEnabled&&this._trace(...e)}isFatalEnabled(){return this.fatalEnabled}isErrorEnabled(){return this.errorEnabled}isWarnEnabled(){return this.warnEnabled}isDebugEnabled(){return this.debugEnabled}isInfoEnabled(){return this.infoEnabled}isTraceEnabled(){return this.traceEnabled}_setLevel(e){throw new Error("Not Impled Yet")}_fatal(...e){throw new Error("Not Impled Yet")}_error(...e){throw new Error("Not Impled Yet")}_warn(...e){throw new Error("Not Impled Yet")}_debug(...e){throw new Error("Not Impled Yet")}_info(...e){throw new Error("Not Impled Yet")}_trace(...e){throw new Error("Not Impled Yet")}}class O{static isLogFactoryLike(e){return null!=e&&("object"==typeof e&&"function"==typeof e.createLogger&&"function"==typeof e.setLevel)}static assertLogFactoryLike(e){if(!this.isLogFactoryLike(e))throw new Error("Not LogFactory")}constructor(e,r){this._libraryModule=e,this._setting=r}get libraryModule(){return this._libraryModule}get setting(){return this._setting}init(){}setLevel(e){throw new Error("Not Impled Yet")}createLogger(e){throw new Error("Not Impled Yet")}}var I={Log4js:"LOG4JS",Console:"CONSOLE"};class C{static isProviderLike(e){return null!=e&&("object"==typeof e&&"function"==typeof e.createLogFactory&&"function"==typeof e.getType)}static assertProviderLike(e){if(!this.isProviderLike(e))throw new Error("Not LogProvider")}getType(){throw new Error("Not Impled Yet")}createLogFactory(e,r){throw new Error("Not Impled Yet")}}const{assertString:T}=o;let A=w;const R=new Map;function U(){R.clear()}const $=new Map;function D(){$.clear()}var j={currentProvider:null,currentLevel:A,type2Provider:R,type2Factory:$,addProvider:function(e,r){T(e),C.assertProviderLike(r),R.set(e.toUpperCase(),r)},getProvider:function(e){return T(e),R.get(e.toUpperCase())},removeProvider:function(e){return T(e),R.delete(e.toUpperCase())},clearProviders:U,listProviders:function(){return[...R.entries()]},addFactory:function(e,r){T(e),O.assertLogFactoryLike(r),$.set(e.toUpperCase(),r)},getFactory:function(e){return T(e),$.get(e.toUpperCase())},removeFactory:function(e){return T(e),$.delete(e.toUpperCase())},clearFactories:D,listFactories:function(){return[...$.entries()]},clear:function(){U(),D()}};class x extends S{constructor(e,r,t){super(e,r,t),this.console=r}_setLevel(e){}_fatal(...e){this.console.error((new Date).toISOString(),this.name,"[Fatal]",...e)}_error(...e){this.console.error((new Date).toISOString(),this.name,"[Error]",...e)}_warn(...e){this.console.warn((new Date).toISOString(),this.name,"[Warn]",...e)}_debug(...e){this.console.debug((new Date).toISOString(),this.name,"[Debug]",...e)}_info(...e){this.console.log((new Date).toISOString(),this.name,"[Info]",...e)}_trace(...e){this.console.log((new Date).toISOString(),this.name,"[Trace]",...e)}}class M extends O{get console(){return this._libraryModule}get setting(){return null==this._setting&&(this._setting={level:j.currentLevel}),this._setting}setLevel(e){_(e),e!==this.setting.level&&(this.setting.level=e),this.init()}init(){}createLogger(e){return new x(e,this.console,this.setting.level)}}const Y=new class extends C{getType(){return I.Console}createLogFactory(e,r){return new M(e,r)}};class k extends S{constructor(e,r){super(e,r),this._level=void 0,this._logger=r}get level(){if(null==this._level){const e=this._logger.level.levelStr;if(null==e)return h.OFF;const r=y(e);if(null==r)throw new Error(`Unknown level name: ${e}`);return r}return this._level}_setLevel(e){_(e);const r=E(e);if(null==r)throw new Error(`Invalid log level: ${e}`);this._logger.level=r.toLowerCase()}_fatal(...e){this._logger.fatal(...e)}_error(...e){this._logger.error(...e)}_warn(...e){this._logger.warn(...e)}_debug(...e){this._logger.debug(...e)}_info(...e){this._logger.info(...e)}_trace(...e){this._logger.trace(...e)}}const W={appenders:{out:{type:"console"}},categories:{default:{appenders:["out"],level:"error"}}},{assertString:G}=o;class B extends O{get log4js(){return this._libraryModule}get setting(){return null==this._setting&&(this._setting=JSON.parse(JSON.stringify(W))),this._setting}init(){this.log4js.configure(this.setting)}setLevel(e){let r=E(e);if(null==r)throw new Error(`Invalid log level: ${e}`);r=r.toLowerCase();let t=!1;const{categories:n}=this.setting;for(const e in n){const o=n[e],{level:i}=o;i!==r&&(o.level=r.toLowerCase(),t=!0)}t&&this.init()}createLogger(e){G(e);const r=this.log4js.getLogger(e);return new k(e,r)}}const{assertNotNil:J}=o;const V=new class extends C{getType(){return I.Log4js}createLogFactory(e,r){J(e);const t=new B(e,r);return t.init(),t}},{assertNotNil:q,assertString:z}=o,{isFunction:H,isNil:K}=r;var Q={Provider:C,LogFactory:O,Logger:S,LogLevel:b,ProviderType:I,getLogger:le,setLevel:Z,useProvider:re,use:re,configureProvider:ie,configure:ie,configureThenUseProvider:se,configureThenUse:se,addProvider:ne,add:ne,clearProviders:oe,currentProvider:ee,current:ee,removeProvider:te,remove:te,ConsoleProvider:Y,Log4jsProvider:V};const X=new Map;function Z(e){z(e);const r=e.toUpperCase(),t=b.name2Value(r);if(null==t)throw new Error(`Invalid log level: ${e}`);if(t!==j.currentLevel){j.currentLevel=t;for(const[e,r]of j.listFactories())r.setLevel(t);for(const e of X.values())e.level!==t&&e.setLevel(t)}}function ee(){return j.currentProvider}function re(e){z(e),e=e.toUpperCase();if(null==j.getProvider(e))throw new Error(`No Provider Named with: ${e}`);j.currentProvider=e}function te(e){return null!=e&&(z(e),e=e.toUpperCase(),j.removeProvider(e))}function ne(e){q(e);const{getType:r,createLogFactory:t}=e;if(!H(r)||!H(t))throw new Error("Invalid Provider Module, missing getType(), createLogFactory() functions");let n=e.getType();z(n),n=n.toUpperCase(),j.addProvider(n,e),K(ee())&&re(n)}function oe(){X.clear(),j.clear()}function ie(e,r,t){z(e),e=e.toUpperCase();const n=j.getProvider(e);if(null==n)throw new Error(`No Provider: ${e}`);const o=n.createLogFactory(r,t);j.addFactory(e,o)}function se(e,r,t){ie(e,r,t),re(e)}function le(e){let r=X.get(e);if(null!=r)return r;const t=ee();if(null==t)throw new Error("No Default LogProvider, call useProvider(typeName)");const n=j.getFactory(t);if(null==n)throw new Error("configureProvider(typeName, nativeLib, settting) before getting logger via Provider");return r=n.createLogger(e),X.set(e,r),r}ne(V),ne(Y),ie(I.Console,console),re(I.Console),e.ConsoleProvider=Y,e.Log4jsProvider=V,e.LogFactory=O,e.LogLevel=b,e.Logger=S,e.Provider=C,e.ProviderType=I,e.add=ne,e.addProvider=ne,e.clearProviders=oe,e.configure=ie,e.configureProvider=ie,e.configureThenUse=se,e.configureThenUseProvider=se,e.current=ee,e.currentProvider=ee,e.default=Q,e.getLogger=le,e.remove=te,e.removeProvider=te,e.setLevel=Z,e.use=re,e.useProvider=re,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=index.min.js.map