我的應用程序當前登錄的一個非常簡單的方法:限制文件流的文件大小?
void Log::create(const std::string& path, bool append)
{
if(append)
m_log.open(path.c_str(),std::ios_base::out | std::ios_base::app);
else
m_log.open(path.c_str(),std::ios_base::out | std::ios_base::trunc);
}
std::ofstream& Log::get()
{
return m_log;
}
void Log::write(const std::string& what)
{
get() << "[" << TimeOfDay::getDate() << "] ";
get() << what << std::endl;
}
void Log::write(const std::string& where, const std::string& what)
{
get() << "[" << TimeOfDay::getDate() << "] ";
get() << "[" << where << "] " << what << std::endl;
}
std::ofstream& Log::write()
{
get() << "[" << TimeOfDay::getDate() << "] ";
return get();
}
std::ofstream Log::m_log;
此應用程序的服務器上運行。現在,如果日誌超過了某個文件大小,我想停止日誌記錄。
有沒有辦法做到這一點,沒有提升或其他圖書館?
感謝
難道你不能通過在各種'write()'重載中遞增計數器來記錄寫入的行數嗎? Boost.Filesystem具有['file_size'](http://www.boost.org/libs/filesystem/doc/reference.html#file_size)函數,可以實現您想要的功能。 MSVC 2013附帶一個基於Boost的''實現,因此如果您使用該編譯器,它應該提供相同的功能。 –
Praetorian