【发布时间】:2021-08-19 19:21:50
【问题描述】:
我尝试了 boost::log,但我在文件中根本没有得到任何东西。事实上,该文件甚至没有被创建。
再次重申:重点是让许多客户端进程分布在网络上,将消息写入同一个文件。
而且我对所有这些属性、接收器、源和过滤器毫无用处——我什至不知道它们的用途。事实上,我更喜欢简单的构造函数和流式操作符。
这是当前的代码,根本不产生任何输出:
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>
static int initFileLogging(void)
{ namespace logging = boost::log;
namespace src = boost::log::sources;
namespace sinks = boost::log::sinks;
namespace keywords = boost::log::keywords;
logging::add_file_log("~/smc.log");
logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::info);
logging::add_common_attributes();
return 0;
}
int main(int, char**)
{
initFileLogging();
namespace logging = boost::log;
namespace src = boost::log::sources;
using namespace logging::trivial;
src::severity_logger< severity_level > lg;
BOOST_LOG_SEV(lg, debug) << "test" << std::endl;
}
【问题讨论】:
-
那些进程是同一个应用程序的不同实例(不同的PID)?在您的问题主体中,您似乎非常关注
boost::log,您是否尝试过其他解决方案?