
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
日志功能的应用在许多软件开发项目中都是非常常见的一个系统功能,而本文我们就通过案例分析来简单了解一下,日志功能的应用都有哪些方法。
服务器端的日志,一直是一个既重要又容易被忽视的问题。很多团队在刚开始的时候,仅仅把日志视为开发调试、排除BUG的辅助工具。但是很快会发现,在服务运营起来之后,日志几乎是服务器端系统在运行时可以用来了解程序情况的有效手段。
尽管我们有各种profile工具,但是这些工具大部分都不适合在正式运营的服务上开启,因为会严重降低其运行性能。所以我们更多的时候需要根据日志来分析。尽管日志从本质上就是一行行的文本信息,但是由于其具有很大的灵活性,所以会很受开发和运维人员的重视。
日志本身从概念上是一个很模糊的东西。你可以随便打开一个文件,然后写入一些信息。但是现代的服务器系统,一般都会对日志做一些标准化的需求规范:日志必须是一行一行的,这样比较方便日后的统计分析;每行日志文本,都应该有一些统一的头部,比如日期时间就是基本的需求;日志的输出应该是分等级的,程序可以在运行时调整输出的等级,以便节省日志打印的消耗;日志的头部一般还需要一些类似用户ID或者IP地址之类的头信息,用于快速查找定位过滤某一批日志记录,或者有一些其他的用于过滤缩小日志查看范围的字段,这叫做染色功能;日志文件还需要有“回滚”功能,也就是保持固定大小的多个文件,避免长期运行后,把硬盘写满。
由于有上述的各种需求,所以开源界提供了很多游戏的日志组件库,比如大名鼎鼎的log4j,以及成员众多的log4X家族库,这些都是应用广泛而饱受好评的工具。
不过对比日志的打印功能,日志的搜集和统计功能却往往比较容易被忽视。作为分布式系统的程序员,肯定是希望能从一个集中节点,能搜集统计到整个集群日志情况。而有一些日志的统计结果,甚至希望能在很短时间内反复获取,用来监控整个集群的健康情况。要做到这一点,就必须有一个分布式的文件系统,用来存放源源不断到达的日志(这些日志往往通过UDP协议发送过来)。而在这个文件系统上,则需要有一个类似MapReduce架构的统计系统,这样才能对海量的日志信息,进行快速的统计以及报警。有一些开发者会直接使用Hadoop系统,有一些则用Kafka来作为日志存储系统,上面再搭建自己的统计程序。
日志服务是分布式运维的仪表盘、潜望镜。如果没有一个可靠的日志服务,整个系统的运行状况可能会失控。所以无论你的分布式系统节点是多少,必须花费重要的精力和专门的开发时间,去建立一个对日志进行自动化统计分析的系统。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。