应用开发中的Log技术(一) 天河的日志 网易博客

应用开发中的Log技术(一) - 天河的日志 - 网易博客

应用开发中的Log技术(一)   

2012-07-12 18:21:29|  分类: Linux applicatio |  标签:  |字号  订阅

       开发过程中,log是一种重要的调试手段。
       目前Android系统提供了logcat,而且也有Api接口,供开发人员在编程时直接使用这种技术进行log输出。
       Linux系统也有即的log系统,但不清楚有没有提供Api接口供开发人员在编程时使用。
       使用系统的log系统有很多优点,例如不用自己变成实现log管理功能,直接使用系统提供的Api接口即可。但是,也有不便之处。例如,诸多应用的log和系统本身的log混杂在一起,不方便,虽然可以查询的时候进行过滤;不知是否动态设置哪个级别log进行输出,避免不必要的输出,减少地系统资源的 消耗;不知道是否支持有些信息仅作为debug时的功能存在。
        如果要自己写一个log系统,则如下几个需求应该是可以考虑的:
1.有些log输出功能仅在debug时存在 ,在release版本中直接没有该功能了。
    这对提高release版本的运行效率是有好处的。
    在c语言开发中,可以通过宏定义来实现,则在release版本中,编译之后的实际代码中,完全没有这些功能。
2、log支持分级,可以在程序运行过程中动态设置启用哪些级别的log功能

     这可以通过if等条件语句来实现,和1相比,编译之后,该功能的代码是存在的,只是在运行时不执行该分支。

3、log支持通过某个控制台、管道、串口等输出,也应该支持保存到文件中。

     应该支持通过进行设置更改输出目的地。

4、支持分类,不同分类,可以输出到不同的目的地。

5、保存成文件时,应该支持根据时间啥的进行管理,例如可以支持每个小时输出成一个文件,每天的输出作为一个目录等等。

6、对debug信息,可以在其中包含文件和行数信息,将来对log阅读管理时,可以和源码阅读关联起来,例如,可以双击某一个log,则直接跳到相应的位置。

网上可用的log库

        目前了解,Log4j系列有很多在c和c++上的类似库,例如Log4c、Log4cpp、Log4cxx、Log4net等等。

         另外还有:google的 GLog, Log4j作者推出的另一种开源Log系统:LogBack

Log4c是纯c实现的,可移植性要比其他几种好。后面是网址:

官网:http://sourceforge.net/projects/log4c/

嵌入式移植:http://code.google.com/p/log4c-embed/ 该项目已经停止。


下面网址中有一个非常简单的:
      该作者的空间中还有几篇很不错的文章和例子:
      例如Linux下经过调试的mempool、例如zero-copy 的:使用sendfile()让数据传输得到最优化,TCP_CORK、TCP_DEFER_ACCEPT和TCP_QUICKACK优化网络
原文地址:https://www.cnblogs.com/lexus/p/2842024.html