UNPKG

@creejs/commons-logging

Version:
3 lines (2 loc) 9 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={isFunction:function(e){return"function"==typeof e},isNumber:function(e){return null!=e&&"number"==typeof e},isNil:r,isString:t};function r(e){return null==e}function t(e){return null!=e&&"string"==typeof e}var o={assertNotNil:function(e,t){if(r(e))throw new Error((t?'"'+t+'" ':" ")+"Should Not Nil")},assertString:function(e,r){if(!t(e))throw new Error(`${r?'"'+r+'" ':" "}Not String: type=${typeof e} value=${JSON.stringify(e)}`)}};const{isNumber:n,isString:s}=e,i="TRACE",l="DEBUG",a="INFO",c="WARN",u="ERROR",g="FATAL",d=new Set([i,l,a,c,u,g,"OFF","ALL"]),v={OFF:-1,FATAL:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5,ALL:6},h={TRACE:i,DEBUG:l,INFO:a,WARN:c,ERROR:u,FATAL:g,OFF:"OFF"},f=new Map;for(const[e,r]of Object.entries(v))f.set(r,e);const p=v.ERROR;function L(e){if(n(e))return f.get(e)}function w(e){if(s(e))return v[e.toUpperCase()]}function E(e){if(!n(e))throw new Error(`Level Not Number: type=${typeof e} value=${e}`);if(e<v.OFF||e>v.ALL)throw new Error(`Not Valid Level: ${e}, Expect between ${v.OFF} and ${v.ALL}`)}const _={Name:h,Level:v,DefaultLevel:p,hasLevel:function(e){return f.has(e)},hasName:function(e){return!!s(e)&&d.has(e.toUpperCase())},assertLevel:E,LevelName:h,LevelValue:v,value2Name:L,name2Value:w},{Level:y,DefaultLevel:b,assertLevel:N}=_,{assertString:F}=o;class P{constructor(e,r,t=b){F(e),N(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>=y.FATAL}get errorEnabled(){return this.level>=y.ERROR}get warnEnabled(){return this.level>=y.WARN}get debugEnabled(){return this.level>=y.DEBUG}get infoEnabled(){return this.level>=y.INFO}get traceEnabled(){return this.level>=y.TRACE}setLevel(e){_.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 m{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 x={Log4js:"LOG4JS",Console:"CONSOLE"};class O{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:S}=o;let C=p;const I=new Map;function R(){I.clear()}const T=new Map;function U(){T.clear()}var A={currentProvider:null,currentLevel:C,type2Provider:I,type2Factory:T,addProvider:function(e,r){S(e),O.assertProviderLike(r),I.set(e.toUpperCase(),r)},getProvider:function(e){return S(e),I.get(e.toUpperCase())},removeProvider:function(e){return S(e),I.delete(e.toUpperCase())},clearProviders:R,listProviders:function(){return[...I.entries()]},addFactory:function(e,r){S(e),m.assertLogFactoryLike(r),T.set(e.toUpperCase(),r)},getFactory:function(e){return S(e),T.get(e.toUpperCase())},removeFactory:function(e){return S(e),T.delete(e.toUpperCase())},clearFactories:U,listFactories:function(){return[...T.entries()]},clear:function(){R(),U()}};class D extends P{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 $ extends m{get console(){return this._libraryModule}get setting(){return null==this._setting&&(this._setting={level:A.currentLevel}),this._setting}setLevel(e){E(e),e!==this.setting.level&&(this.setting.level=e),this.init()}init(){}createLogger(e){return new D(e,this.console,this.setting.level)}}const j=new class extends O{getType(){return x.Console}createLogFactory(e,r){return new $(e,r)}};class M extends P{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 v.OFF;const r=w(e);if(null==r)throw new Error(`Unknown level name: ${e}`);return r}return this._level}_setLevel(e){E(e);const r=L(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 Y={appenders:{out:{type:"console"}},categories:{default:{appenders:["out"],level:"error"}}},{assertString:k}=o;class W extends m{get log4js(){return this._libraryModule}get setting(){return null==this._setting&&(this._setting=JSON.parse(JSON.stringify(Y))),this._setting}init(){this.log4js.configure(this.setting)}setLevel(e){let r=L(e);if(null==r)throw new Error(`Invalid log level: ${e}`);r=r.toLowerCase();let t=!1;const{categories:o}=this.setting;for(const e in o){const n=o[e],{level:s}=n;s!==r&&(n.level=r.toLowerCase(),t=!0)}t&&this.init()}createLogger(e){k(e);const r=this.log4js.getLogger(e);return new M(e,r)}}const{assertNotNil:G}=o;const B=new class extends O{getType(){return x.Log4js}createLogFactory(e,r){G(e);const t=new W(e,r);return t.init(),t}},{assertNotNil:J,assertString:V}=o,{isFunction:q,isNil:z}=e;var H={Provider:O,LogFactory:m,Logger:P,LogLevel:_,ProviderType:x,getLogger:se,setLevel:Q,useProvider:Z,use:Z,configureProvider:oe,configure:oe,configureThenUseProvider:ne,configureThenUse:ne,addProvider:re,add:re,clearProviders:te,currentProvider:X,current:X,removeProvider:ee,remove:ee,ConsoleProvider:j,Log4jsProvider:B};const K=new Map;function Q(e){V(e);const r=e.toUpperCase(),t=_.name2Value(r);if(null==t)throw new Error(`Invalid log level: ${e}`);if(t!==A.currentLevel){A.currentLevel=t;for(const[e,r]of A.listFactories())r.setLevel(t);for(const e of K.values())e.level!==t&&e.setLevel(t)}}function X(){return A.currentProvider}function Z(e){V(e),e=e.toUpperCase();if(null==A.getProvider(e))throw new Error(`No Provider Named with: ${e}`);A.currentProvider=e}function ee(e){return null!=e&&(V(e),e=e.toUpperCase(),A.removeProvider(e))}function re(e){J(e);const{getType:r,createLogFactory:t}=e;if(!q(r)||!q(t))throw new Error("Invalid Provider Module, missing getType(), createLogFactory() functions");let o=e.getType();V(o),o=o.toUpperCase(),A.addProvider(o,e),z(X())&&Z(o)}function te(){K.clear(),A.clear()}function oe(e,r,t){V(e),e=e.toUpperCase();const o=A.getProvider(e);if(null==o)throw new Error(`No Provider: ${e}`);const n=o.createLogFactory(r,t);A.addFactory(e,n)}function ne(e,r,t){oe(e,r,t),Z(e)}function se(e){let r=K.get(e);if(null!=r)return r;const t=X();if(null==t)throw new Error("No Default LogProvider, call useProvider(typeName)");const o=A.getFactory(t);if(null==o)throw new Error("configureProvider(typeName, nativeLib, settting) before getting logger via Provider");return r=o.createLogger(e),K.set(e,r),r}re(B),re(j),oe(x.Console,console),Z(x.Console),exports.ConsoleProvider=j,exports.Log4jsProvider=B,exports.LogFactory=m,exports.LogLevel=_,exports.Logger=P,exports.Provider=O,exports.ProviderType=x,exports.add=re,exports.addProvider=re,exports.clearProviders=te,exports.configure=oe,exports.configureProvider=oe,exports.configureThenUse=ne,exports.configureThenUseProvider=ne,exports.current=X,exports.currentProvider=X,exports.default=H,exports.getLogger=se,exports.remove=ee,exports.removeProvider=ee,exports.setLevel=Q,exports.use=Z,exports.useProvider=Z; //# sourceMappingURL=index-min.cjs.map