五、日志控制
1、控制目标
日志系统要控制的目标包含整个日志内容流转的过程。对日志来源的控制,一般着重于对日志内容的过滤。上面对内容进行分级、分类、制定格式,一个最重要的原因就是对日志内容的过滤。对日志输出控制,主要着重于输出目的,比如是文件还是SYSLOG,以及诸如此类。
日志控制是日志内容流转过程中的一个强化功能。一般来说,越多的日志内容,对系统跟踪分析更有利,但更多的内容,就越增加分析的难度。所以我们需要通过日志控制这个功能来进行平衡。
2、来源控制
一个最明显的例子,为了方便调试,可能需要在系统中增加调试信息,在正在发布中,这些是不需要。所以在很多系统发布版本中,都要区分发布版和调试版。如果增加了来源控制系统,那么这些事情就简单多了。我们只要将这些信息简单地分级分类。通过一个逻辑控制,将不需要的给过滤掉。前面的分级分类的工作,在这个时候就会发挥很大的作用。
在wireshark,原来的ethereal,允许自己编辑过滤条件。POSIX的正则表达式也是个很好的设置过滤条件工具。过滤是来源控制功能的一个很重要的工作。实际上,内容在来源上已经产生,只是没有到达或者说没有必要到达到输出目的地。
3、输出控制
输出控制是日志控制的一个重要工作,但是这个工作和日志输出会有个概念重合的地方。控制只是负责按规则解释这个内容究竟是否需要输出,至于输出的具体内容,其实和他已经没有什么关系了。
六、日志输出
日志输出有两个重点功能,就是输出什么样以及往哪里输出。
1、输出格式
输出格式,是解释内容是什么样的工作,printf的格式串是很明显的例子。但是一个强大的日志系统可能更为复杂,比如DBMS的日志系统。格式问题往往在日志检索中,或者日志分析中,体现出巨大的作用。在通常的使用中,还是要依赖于分级和分类。不过格式的使用,针对日志内容级别的检索和分析将更为有用。
2、输出目标
输出目标通常为文件,控制台,syslog,在apache logging项目中还有个telnet。在文件和syslog作为输出目标时,其实和存储已经很相似了。往哪个目标输出是输出控制的功能,不过,每个目标输出内容应该如何输出,就是日志输出的工作了。
3、telnet
telnet作为输出目标是很少见,因为他比较复杂,不过,因为他功能强大,所以,在大型服务器中,是非常需要的。在这里必须着重提醒一下。apache logging项目,专门有个功能。telnet配合日志控制,允许在运行期得到更为详细的功能供调试。这是个很重要的特性,他提供了在运行期和系统进行交互的一个手段。
七、日志存储
日志存储其实是日志输出的一部分,不过是日志输出中一个很特别的部分。日志输出可能没有IO操作,只在内存中完成操作,但是日志存储是必须存储到物理磁盘中。这个特性就会涉及到一个效率问题。我们知道IO操作和内存操作的性能级别不是一个数量级的。当日志系统涉及到存储时,就必须考虑到性能问题。当大量的数据频繁地被写入到磁盘中,性能问题就更为严重。必须采取更有效的措施来避免写盘操作对其他系统的影响。
日志系统架构设计需要注意什么 如何设计一个日志系统
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
qtdesigner控件图片变化
需要 #include <QListWidget> #include <QListWidgetItem>列表控件可以让我们以列表形式呈现内容,是界面更加有序美观。QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表
qtdesigner控件图片变化 c/c++ 列表控件 Qt #include