让Log4CPLUS每个CPP记一个日志文件

来源:互联网 发布:apache ant 1.8.4 bin 编辑:程序博客网 时间:2024/06/05 07:33

http://blog.csdn.net/tingsking18/article/details/4471784

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。

1. 写一个头文件,"mylog.h",如下:

#pragma once#include <log4cplus/logger.h>#include <log4cplus/configurator.h>#include <log4cplus/fileappender.h>#include <log4cplus/consoleappender.h>#include <log4cplus/layout.h>#include <log4cplus/logger.h>#include <log4cplus/ndc.h>#include <log4cplus/helpers/loglog.h>#include <log4cplus/helpers/threads.h>#include <log4cplus/streams.h>using namespace std;using namespace log4cplus;struct GLOG{    GLOG(const char  * _fname)    {         string n = _fname;         Logger _l = (Logger::getInstance(n));        n+= ".log";        _l.addAppender(new RollingFileAppender(n.c_str(), 1024*10, 10));        _l.addAppender(new  ConsoleAppender());     }}; #define USE_SEPARATE_LOG(fname)  static GLOG _g(fname);#define fLog                     Logger::getInstance(__FILE__)

2. 在所有要打log的cpp文件里 include "mylog.h", 
   并在文件的最前面加一句: USE_SEPARATE_LOG(__FILE__)

3. 所有打log的地方都用下面的句子打:
   LOG4CPLUS_INFO(fLog, "testtest"<<endl);

比如:
#include "stdafx.h"#include <iostream>#include "mylog.h" USE_SEPARATE_LOG(__FILE__)int main(int argc, _TCHAR* argv[]){     LOG4CPLUS_INFO(fLog, "Hello world"<<endl);     return 0;}


BTW:每个文件记录一个日志文件真不是什么好办法。

原创粉丝点击