1
POCO ::記錄器類有所謂LogStream已誰實施了記錄一個ostream的。POCO記錄器包裝
我試着寫一個類封裝來實現日誌系統爲我的項目。
到目前爲止,我有這樣的:
的小時。
#include "Poco/LogStream.h"
#include "Poco/Logger.h"
#include "Poco/FileChannel.h"
#include "Poco/AutoPtr.h"
using Poco::Logger;
using Poco::FileChannel;
using Poco::AutoPtr;
using Poco::LogStream;
class MyLogger
{
public:
MyLogger();
Poco::LogStream& operator()();
~MyLogger();
private:
Poco::Logger& m_logger;
};
的CPP
MyLogger::MyLogger() : m_logger(Poco::Logger::get(APP_NAME))
{
/*
AutoPtr<FileChannel> pChannel(new FileChannel);
pChannel->setProperty("path", "c:\\teshss.log");
pChannel->setProperty("rotation", "2 K");
pChannel->setProperty("archive", "timestamp");
Logger::root().setChannel(pChannel);
Logger& logger = Logger::get(APP_NAME); // inherits root channel
*/
}
Poco::LogStream& MyLogger::operator()()
{
AutoPtr<FileChannel> pChannel(new FileChannel);
pChannel->setProperty("path", "c:\\teshss.log");
pChannel->setProperty("rotation", "2 K");
pChannel->setProperty("archive", "timestamp");
Logger::root().setChannel(pChannel);
Logger& logger = Logger::get("");
LogStream lstr(logger);
return lstr;
}
MyLogger::~MyLogger()
{
}
然後在我的項目,我首先生成一個實例MyLogger:
mylog() << "Hello world" << std::endl;
此代碼:
MyLogger mylog;
和函數內complile和運行,但生成acc當我嘗試寫入一個日誌行時發生違規行爲。
老實說,我沒有得多想法什麼即時通訊做,我有經驗與C++的工作,但寫一個包裝是全新的我。所以我需要一些幫助。
謝謝。
謝謝你的時間。 :) – jsilva