当然,在不好算开发中,每个软件应该有自己的日志系统,每种语言都是自己的日志框架/模块,不断互联网和大数据的蓬勃发展,分布式的日志系统,这些日志分析系统也应用方法的更加广泛的,越来越大成熟。
从以下几方面踏入日志设计
第一,谁在使用日志
有一个问题,可能会很多开发人员却没认真思索过,就是日志到底是给谁是用?用户,运维,开发人员,软件学习爱好者?不过,答案是所有的。
第二,完全不同的角色,有不同的视角,在不同的阶段,有差别的需求,那么日志就应该是可以提供差别的帮助。在做日志模块的内容设计时,也应该是站在不同的角度去决定,要思维清晰,哪些信息给用户看,哪些给运维人员看,哪些给程序员看。要都讲究轻重主次,又不是说祥细就一定会好。
第三,日志的等级
开发过一些系统,大体的感受是这样的:刚开始的时候,大家都低些比较好都讲究,日志的等级、内容、位置都会去努力思考、选择。可是伴随着时间不停的延伸,功能不断地的扩展,日志慢慢的变的动荡,结果已沦为乱麻一片血红!
日志常见有多个等级,等级的确光是指“祥细程度”,还关系不到适用场景,服务对象,目的功能等。
第四,日志使用的几种场景
1)开发过程中:
日志是一种表示友好、强横的记录软件运行时内部结构和状态的工具,是调试利器,当然每种语言都会提供给拿来的调试工具,.例如c/cgdb,java的jdb等等。不过不属于到业务逻辑,并发,交互等情况时,肯定日志更轻轻巧巧、便捷快速!我象是在对“眼生”代码(例如开源软件)学习时,才会用gdb等调试工具,强大无比但变得笨重,更适合我梳理代码结构,而不是功能或业务结构!
2)测试过程中:
在进行功能测试时,或trace信息,得象看监控慢放时一样的,让犯罪分子难伸遁行!
3)软件学习时:
学习软件时,除开软件的架构设计、业务功能、代码逻辑,日志总能可以提供很多线索、很多帮助。记住很久以前,看某个开源软件系统的代码,作战部署完以后,再然后打开trace跑一边,系统的整体结构及内容,立见分晓,再加强怎么设计文档,迅速就没知道了!就那一瞬间,让我深沉的记住,好的日志系统,那个是这么多的神奇啊!
4)正常运行:
一定不要开着debug跑系统,没有意义!前提是,error信息要准、规范,客户只关系生死问题,再多的信息对他们也没有意义!
软件工程师一般是后端,前端的叫前端工程师或则ui设计师。
一般来说,软件工程师是一个广义的概念,除开软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产去相关。软件工程师的技术要求是也很新华考资的,以外最基础的编程语言(c语言/c/java等)、数据库技术(sql/oracle/db2等)等,还有一个诸多如javascript、ajax、hibernate、spring等前沿技术。况且,关于网络工程和软件测试的其他技术也要所涉猎范围。