我用這個日志模塊, 同時寫日志檔案 和 控制臺. 寫入日志檔案沒問題, 寫控制臺, 寫入幾行, 后面就不列印了, 日志檔案還在寫.
我用 tail -f log.log 會報錯:
TAIL: write() failed
void MyLog::init(const std::string& filename)
{
_filename = filename;
boost::filesystem::path filepath = boost::filesystem::complete(_filename);
boost::filesystem::path dir = filepath.parent_path();
if (boost::filesystem::exists(dir) == false)
{
boost::filesystem::create_directories(dir);
}
auto consoleSink = boost::log::add_console_log
( std::clog,
keywords::filter = expr::attr< trvl::severity_level >("Severity") >= (trvl::severity_level)_logLevel,
keywords::format =
(
expr::stream
<< expr::format_date_time< boost::posix_time::ptime >("TimeStamp", FMT)
<< " [" << boost::log::trivial::severity
<< "] " << expr::smessage
)
);
auto pSink = boost::log::add_file_log
(
keywords::open_mode = std::ios::app, // 采用追加模式
keywords::file_name = filename,
keywords::rotation_size = _fileSize * 1024 * 1024,
keywords::filter = expr::attr< trvl::severity_level >("Severity") >= (trvl::severity_level)_logLevel,
keywords::max_files = _fileCount,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),
keywords::format =
(
expr::stream
<< expr::format_date_time< boost::posix_time::ptime >("TimeStamp", FMT)
<< " [" << boost::log::trivial::severity
<< "] " << expr::smessage
)
);
pSink->locked_backend()->auto_flush(true); //使日志實時更新
consoleSink->locked_backend()->auto_flush(true); //使日志實時更新
pSink->imbue(std::locale("zh_CN.UTF-8")); // 本地化
consoleSink->imbue(std::locale("zh_CN.UTF-8")); // 本地化
boost::log::add_common_attributes();
}
uj5u.com熱心網友回復:
以release 方式編譯執行就正常了,也不知道什么鬼[face]monkey2:012.png[/face]轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247365.html
標籤:C++ 語言
