版权声明
请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“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:每个文件记录一个日志文件真不是什么好办法。