diff options
Diffstat (limited to 'src/crimson/os/alienstore/alien_log.cc')
-rw-r--r-- | src/crimson/os/alienstore/alien_log.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/crimson/os/alienstore/alien_log.cc b/src/crimson/os/alienstore/alien_log.cc new file mode 100644 index 000000000..b371af897 --- /dev/null +++ b/src/crimson/os/alienstore/alien_log.cc @@ -0,0 +1,33 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#include "alien_log.h" +#include "log/SubsystemMap.h" +#include <seastar/core/alien.hh> +#include "crimson/common/log.h" + +namespace ceph::logging { +CnLog::CnLog(const SubsystemMap *s, seastar::alien::instance& inst, unsigned shard) + :Log(s) + ,inst(inst) + ,shard(shard) { +} + +CnLog::~CnLog() { +} + +void CnLog::_flush(EntryVector& q, bool crash) { + seastar::alien::submit_to(inst, shard, [&q] { + for (auto& it : q) { + crimson::get_logger(it.m_subsys).log( + crimson::to_log_level(it.m_prio), + "{}", + it.strv()); + } + return seastar::make_ready_future<>(); + }).wait(); + q.clear(); + return; +} + +} //namespace ceph::logging |