电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

U8Cloud开发课件-红皮书-U8 cloud V1.0-日志异常技术红皮书.pdfVIP免费

U8Cloud开发课件-红皮书-U8 cloud V1.0-日志异常技术红皮书.pdf_第1页
1/11
U8Cloud开发课件-红皮书-U8 cloud V1.0-日志异常技术红皮书.pdf_第2页
2/11
U8Cloud开发课件-红皮书-U8 cloud V1.0-日志异常技术红皮书.pdf_第3页
3/11
红皮书-1.0日志异常技术新一代云ERP解决方案2目录一.前言.3二.API详解.32.1.系统级日志API..32.2.产品级日志API..52.3.平台级日志API..7三.日志规范.83.1.日志API的选择.83.2.日志级别的选择..8四.异常规范.94.1.规则.94.2.前台代码格式..94.3.Impl类.94.4.DAO类.10新一代云ERP解决方案3一.前言日志系统主要解决运行时刻系统的状态跟踪,为潜在的系统维护和分析提供信息收集的手段。二.API详解日志系统的API较为简单,大部分程序员只要关注这一节的内容即可。日志系统的API根据需求主要分为二大部分,第一个部分为日志API,第二个部分为Debug的API,主要帮助程序的调试。2.1.系统级日志API系统级的日志交互主要的类为Log,通过该类,通过该API日志时日志系统使用的模块不会动态变化,系统级日志使用的API在应用程序编译时刻就已经确定。该日志只有UAP技术代码(基础技术组)的代码使用,其它产品代码不准使用下面是一个普通的日志API使用的例子:packagenc.bs.demo.logging;importnc.bs.logging.Log;publicclassHelloWorld{privatestaticfinalLoglog=Log.getInstance(HelloWorld.class);publicstaticvoidmain(Stringargs[]){log.debug("Hello,World");}}HelloWorld定义了一个Log对象常量,他的模块名为HelloWorld的类名,即nc.bs.demo.logging.HelloWorld,运行该程序,如果输出格式设定为文本(text),那么输出的结构如下:[main][nc.bs.demo.logging.HelloWorld][Pub][Anonymous]DEBUG-Hello,World目前我们并没有配置系统的日志格式和日志输出,系统自动为模块继承匿名模块新一代云ERP解决方案4(Anonymous)的所有的属性。匿名模块没有任何配置自动选取标准输出作为文件的输出格式。后面在描述模块概念,以及日志配置有着详细介绍。普通日志的主要的方法描述如下: staticLoggetInstance(Stringname)根据模块名称或取该模块的日志实例,参数一般以类名作为参数 staticLoggetInstance(Classclazz)根据类信息获取日志的实例 booleanisDebugEnabled();检查当前模块日志调试是否启用 voiddebug(Objectmsg,Throwablethrowable);日志调试信息 voiddebug(Objectmsg);日志调试信息 voiddebug(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志调试信息 booleanisInfoEnabled();检查当前模块日志提示信息是否启用 voidinfo(Objectmsg);日志调试普通信息 voidinfo(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志调试普通信息 booleanisWarnEnabled();检查当前模块日志警告是否启用 voidwarn(Objectmsg,Throwablethrowable);日志警告信息 voidwarn(Objectmsg,Throwablethrowable,Classcaller,StringmethodName)为了提高效率,日志警告信息 voidwarn(Objectmsg);新一代云ERP解决方案5日志警告信息 voidwarn(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志警告信息 booleanisErrorEnabled();检查当前模块日志错误报告是否启用 voiderror(Objectmsg,Throwablethrowable);日志错误信息 voiderror(Objectmsg,Throwablethrowable,Classcaller,StringmethodName)为了提高效率,日志错误信息 voiderror(Objectmsg);日志错误信息 voiderror(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志错误信息2.2.产品级日志API产品级日志是指日志系统所采用的模块在运行时刻随着程序的运行环境不断发生变化的的日志API,产品级日志的API主类为Logger。产品程序:packagenc.bs.demo.logging;importnc.bs.logging.Logger;publicclassGeneralAlrig{publicstaticvoidsayHello(){Logger.debug("hello,world");}}可以看出该通用算法的日志模块在finance模块中为finace,在Supply模块中运行为Supply模块。由于不同的模块输出位置、输出格式、输出的信息量等都可以配置,这对于针对单一模块的问题追踪具有一定的意义。新一代云ERP解决方案6Logger的主要方法描述如下: booleanisDebugEnabled();检查当前模块日志调试是否启用 voiddebug(Objectmsg,Throwablethrowable);日志调试信息 voiddebug(Objectmsg);日志调试信息 voiddebug(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志调试信息 booleanisInfoEnabled();检查当前模块日志提示信息是否启用 voidinfo(Objectmsg);日志调试普通信息 voidinfo(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志调试普通信息 booleanisWarnEnabled();检查当前模块日志警告是否启用 voidwarn(Objectmsg,Throwablethrowable);日志警告信息 voidwarn(Objectmsg,Throwablethrowable,Classcaller,StringmethodName)为了提高效率,日志警告信息 voidwarn(Objectmsg);日志警告信息 voidwarn(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志警告信息 booleanisErrorEnabled();检查当前模块日志错误报告是否启用 voiderror(Objectmsg,Throwablethrowable);日志错误信息新一代云ERP解决方案7 voiderror(Objectmsg,Throwablethrowable,Classcaller,StringmethodName)为了提高效率,日志错误信息 voiderror(Objectmsg);日志错误信息 voiderror(Objectmsg,Classcaller,StringmethodName)为了提高效率,日志错误信息配置日志信息,抛出日志的配置异常。这个部分并不是动态日志特有的API,是配置系统模块的一个API入口,用于特殊的需求。2.3.平台级日志API平台级日志是指日志系统所采用的模块在运行时刻随着程序的运行环境不断发生变化的的日志API,平台级日志的API主类为Logger。API同以上产品级代码。主要不同之处为了确保产品的调试方便性,通过平台的日志保证代码放在平台配置的日志中。 voidinit(Stringmodule);初始化Logger,传入系统目前的模块,传入参数为空,同init无参数。参数一般以类名作为参数。。应用程序不需要调用该方法,一般只有平台性的系统调用该方法。 voidreset();从当前执行环境中把模块信息进行复位。。应用程序不需要调用该方法,一般只有平台性的系统调用该方法。平台级日志的使用遵循有init就必须reset的原则,一般代码结构如下:Logger.init(“module”);try{……}finally{Logger.reset()}一般情况下产品程序员不需要调用init,reset,中间件在远程调用的开始和其他的平台(如流程平台)在调度业务代码会主动调用init和reset方法。新一代云ERP解决方案8三.日志规范3.1.日志API的选择日志API的选择决定程序对日志的要求: 在所有业务组的代码中严禁出现System.out.println()代码,除中间件组代码外; 如果日志输出不要求在运行时刻发生变化,用Log,它具有更高的效率,中间件组的纯技术代码使用,其它开发不需使用; 如果日志输出需要输出到某个发起调用的模块,而不是代码本身所属模块,使用Logger动态日志。如供应链模块的BService调用财务模块的BService,发起端为供应链模块,我们希望在供应链模块能个够跟踪到信息的时候,财务模块的BService采用Logger作为日志API,如果发起方是它自己模块,则输出在自己的模块内,如果未配置模块,则日志在匿名模块内; 基础算法的程序(供给所有模块使用),统一采用Logger作为API; 后台业务程序和前后台公共程序、全部业务程序采用Logger; 平台类级程序需要进行采用Logger.init/reset设置,放在各自设置的模块中如:(plateform,pa等)平台级日志的使用遵循有init就必须reset的原则。3.2.日志级别的选择目前规定日志只有四种日志级别DEBUG、INFO、WARN、ERROR,顺序为DEBUG

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

U8Cloud开发课件-红皮书-U8 cloud V1.0-日志异常技术红皮书.pdf

确认删除?
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
微信
  • 微信