zoukankan      html  css  js  c++  java
  • 应用开发中的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优化网络
  • 相关阅读:
    git 实践(二) push的使用
    git 实践(一) pull的使用
    redux项目实战应用笔录
    浅谈ES6的Object.assign()浅拷贝
    React下reducer中处理数组&&对象的赋值改动
    git pull与git clone
    (0)网络编程基础(网络基本知识)
    (1)什么是socket(套接字)
    (12)异常处理
    (11)类的内置函数
  • 原文地址:https://www.cnblogs.com/lexus/p/2842024.html
Copyright © 2011-2022 走看看