From 47f7c6cf267c33e46bb67e048cd39adaccd2de14 Mon Sep 17 00:00:00 2001 From: NitzanMordhai Date: Sun, 15 May 2022 04:49:36 +0000 Subject: [PATCH] crimosn/osd: logger into log_file set seastar ostream to log_file Signed-off-by: Nitzan Mordechai --- src/crimson/osd/main.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/crimson/osd/main.cc b/src/crimson/osd/main.cc index 9076a58f3097a..e81bff4ea1f7b 100644 --- a/src/crimson/osd/main.cc +++ b/src/crimson/osd/main.cc @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -238,6 +239,19 @@ int main(int argc, const char* argv[]) local_conf().parse_config_files(conf_file_list).get(); local_conf().parse_env().get(); local_conf().parse_argv(config_proxy_args).get(); + std::ofstream log_file_stream; + if (auto log_file = local_conf()->log_file; !log_file.empty()) { + log_file_stream.open(log_file, std::ios::app | std::ios::out); + try { + seastar::throw_system_error_on(log_file_stream.fail()); + } catch (const std::system_error& e) { + ceph_abort_msg(fmt::format("unable to open log file: {}", e.what())); + } + auto reset_logger = seastar::defer([] { + logger().set_ostream(std::cerr); + }); + logger().set_ostream(log_file_stream); + } if (const auto ret = pidfile_write(local_conf()->pid_file); ret == -EACCES || ret == -EAGAIN) { ceph_abort_msg( -- 2.39.5