Ich benutze boost.log, um Multi-Log-Datei nach String-Wert zu erstellen. Wenn die Zeichenfolge jedoch UTF8-codiert ist, hat die erstellte Datei einen falschen Namen (wie folgt: è ° .æ|ç).boost.log Problem beim Erstellen einer Datei mit einem UTF8-Dateinamen
BOOST_LOG_SCOPED_LOGGER_ATTR(Logger::motion_checker, "RoleName", boost::log::attributes::constant<std::string>(name))
typedef boost::log::sinks::asynchronous_sink<boost::log::sinks::text_multifile_backend> multifile_sink;
boost::shared_ptr<multifile_sink> sink(new multifile_sink);
sink->locked_backend()->set_file_name_composer(boost::log::sinks::file::as_file_name_composer(
boost::log::expressions::stream << "./log/MotionCheck/" << boost::log::expressions::attr<std::string>("RoleName") << ".log"));
sink->set_formatter
(
boost::log::expressions::format("[%1%] - %2%")
% boost::log::expressions::attr<boost::posix_time::ptime>("TimeStamp")
% boost::log::expressions::smessage
);
sink->set_filter(channel == motion_check_channel);
core->add_sink(sink);
Wie boost.log den UTF8-Dateinamen verarbeiten kann?