#1 Log4cxx有比较完整的配置文档方式,xml和java配置档;GLog只能通过启动程序的时候的输入参数来配置;

#2 GLog单独写文件的效能比Log4cxx高15%左右;但是GLog写stderr的效能低于Log4cxx;

#3 GLog同时写stderr和文件的效能比Log4cxx低;

#4 两者占用cpu和内存情况基本相同;

#5 二者都支持c的printf和c++的stream类型的输出形式;

#6 二者在多线程下都有办法做到当前线程的log输出是连续的;

#7 Log4cxx目前可以输出到console、file、remote server和一些特殊的设备,GLog只能做到前两者;

#8 Log4cxx结构设计很清晰,logger(层级logger),appender(输出源)和layout(格式化)配合配置文件无论是理解还是使用都比较容易;GLog目前看是一个比Log4cxx轻量级的库,它只是针对console和文件设计的,只是天生支持一些特殊的条件输出log的功能;

#9 Log4cxx支持层级logger,可以使用这个概念方便的对每个class(包括其名字空间)为基础设计每个class的logger,输出的时候层级很明显;GLog没有这
样的功能。


 


另外补充几点:

* log4cxx 可在运行中更改日志输出,如更改日志等级,输出文件,实际上是日志配置文件更改后会重新读取。

* log4cxx 可异步输出,所以日志IO输出不会拖慢主程序。