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