代码:log_demo.cpp
#include <string.h>
#include <fstream>
#include <boost/thread.hpp>
#include <time.h>
#include <unistd.h>
using namespace std;
class Demo
{
public:
Demo();
~Demo();
ofstream DEMO_LOG;
void func();
string getTime();
};
Demo::Demo()
{
string file="/home/xx/demo.log";//xx=your user name
DEMO_LOG.open(file.c_str());
}
Demo::~Demo()
{
}
void Demo::func()
{
while(1)
{
string time=getTime();
DEMO_LOG<<time<<endl;//把DEMO_LOG当成cout使用就好了,哪里想写写哪里
cout<<time<<endl;
sleep(1);
}
}
string Demo::getTime()
{
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&timep) );
return tmp;
}
int main()
{
Demo demo;
boost::thread td(boost::bind(&Demo::func,&demo));
td.join();
return 0;
}
编译:
g++ log_demo.cpp -o demo -lboost_system -lboost_thread
运行:
xx@xxThinkPad-X:~$ cat demo.log
2021-03-18 15:10:54
2021-03-18 15:10:55
2021-03-18 15:10:56
2021-03-18 15:10:57
2021-03-18 15:10:58
2021-03-18 15:10:59
2021-03-18 15:11:00
本文介绍了一个简单的C++程序,该程序通过一个名为Demo的类实现基本的日志记录功能。程序创建了一个日志文件并不断更新当前时间戳到日志中。此示例利用了Boost库来创建后台线程进行日志更新。
1693

被折叠的 条评论
为什么被折叠?



