gpt4 book ai didi

c++ - 在并行环境中使用 boost::log

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:09:48 24 4
gpt4 key购买 nike

我用两个进程运行了以下代码。在输出中,只有一个条目。我每次都得到不同的排名。似乎每个进程都会覆盖文件。如何让所有进程在不覆盖的情况下记录消息?

预期结果(顺序可能不同):

0
1

实际结果:

0 // and sometimes 1

代码:

#include <boost/log/trivial.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/mpi.hpp>

int main()
{
boost::mpi::environment env;
boost::mpi::communicator world;

boost::log::add_file_log("sample.log");
BOOST_LOG_TRIVIAL(info) << world.rank();
return 0;
}

最佳答案

Boost log 没有这样的机制,但是您可以使用单独的进程在同一个文件中记录数据,并在外部提供对该进程的访问。要实现此方法,您可以使用 boost socketssyslog backend

关于c++ - 在并行环境中使用 boost::log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com