45 lines
819 B
C++
45 lines
819 B
C++
|
#ifndef __UT_LOG_FILE_KEEPER_H__
|
||
|
#define __UT_LOG_FILE_KEEPER_H__
|
||
|
|
||
|
#include <unitree/common/log/log_policy.hpp>
|
||
|
|
||
|
namespace unitree
|
||
|
{
|
||
|
namespace common
|
||
|
{
|
||
|
class LogKeeper
|
||
|
{
|
||
|
public:
|
||
|
LogKeeper(LogStorePolicyPtr storePolicyPtr);
|
||
|
~LogKeeper();
|
||
|
|
||
|
LogStorePolicyPtr GetStorePolicy() const;
|
||
|
|
||
|
bool Append(const std::string& s, bool rotate);
|
||
|
|
||
|
private:
|
||
|
void Rotate();
|
||
|
|
||
|
void AppendFile(const std::string& s);
|
||
|
void OpenFile();
|
||
|
void CloseFile();
|
||
|
|
||
|
void CheckFileSize();
|
||
|
|
||
|
std::string MakeRegexExpress();
|
||
|
|
||
|
private:
|
||
|
volatile int64_t mFileSize;
|
||
|
std::string mFileName;
|
||
|
std::string mDirectory;
|
||
|
FilePtr mFilePtr;
|
||
|
LogStorePolicyPtr mStorePolicyPtr;
|
||
|
};
|
||
|
|
||
|
typedef std::shared_ptr<LogKeeper> LogKeeperPtr;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif//__UT_LOG_FILE_KEEPER_H__
|