日志控制与过滤的实现与优化
在日志记录的过程中,我们常常会遇到一些问题,比如日志文件格式不规范、直接写入日志文件可能导致过滤规则失效等。为了解决这些问题,我们需要对日志记录进行一系列的优化和改进。
1. 解决换行问题
首先,我们创建了一个自定义的 LogStream
类,用于解决日志文件中换行的问题。之前的日志文件存在首行空行和末行无换行的问题,通过这个类可以很好地解决。
class LogStream : public std::fstream
{
public:
LogStream (std::string const & filename,
std::ios_base::openmode mode = ios_base::app)
: std::fstream(filename, mode)
{ }
LogStream (LogStream const & other) = delete;
LogStream (LogStream && other)
: std::fstream(std::move(other))
{ }
~LogStream ()
{
*this << std::endl;
}
LogStream & operator = (LogStream const & rhs) = delete;
LogStream & operator = (LogS