我在等人回答来着...

开发方面来讲,主要就是按照这几个级别的语义来做就好了,我以我现在做的一个项目来说吧,代码在这里:

Dasein Cloud · GitHub

。这个项目主要是对各种云平台API的封装,简单说就是调用各个云平台的Rest API做各种请求,核心就是发一堆HTTP请求:

Debug:就和开发中的debug一个意思,debug中你能观察到的就是各类变量。这个级别就是让你可以记录下各种具体参数,在出问题的时候方便解决问题。比如,在发送HTTP请求是,可以把HTTP的详细信息(请求头,请求内容,返回头,返回内容等)记录下来。

Info:记录一般信息,不是很具体。比如在接收到一个创建虚拟机请求时,记一下“来创建虚拟机请求了”;虚拟机创建成功后,记一下“虚拟机建好了,ID是xxxx”。

Warn:出现一般异常情况,但是问题不大,不会影响当前的程序运行。比如,在关闭一个HTTP连接的时候出异常了,问题不大,打个Warn,有时间还是要处理。

Error:出现异常情况,要去看看原因。比如,如果前一个HTTP请求返回了400错误,这时要去找原因了,正常是不会出这种问题的。

Fatal:出现异常,服务不行了,要挂了。和Error的区别就是,Error只影响单次操作,服务还是好的。比如,OOM?如果依赖数据库,但是数据库挂了,也能算Fatal。我们这应用中没有这种错误

运维方面没什么经验,我第一家公司里用的Oracle全套,全套包括了数据库,J2EE服务器(不是Weblogic),ORM等,可能是Oracle的建议吧,反正在产品上,Warn以下级别的Log都没有打出来,Error以上级别的都会发邮件通知,所以Info级别的记录,就别想在产品日志中找到了。后来自己做的小项目,为了方便,Infor级别以上都打了。运维方面还是要总和考虑日志磁盘大小,日志文件大小,汇总方式,日志保存时间等综合考虑吧。

分类: 源码分享 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录