From: NitzanMordhai Date: Sun, 15 May 2022 04:49:36 +0000 (+0000) Subject: crimosn/osd: logger into log_file X-Git-Tag: v18.0.0~805^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=47f7c6cf267c33e46bb67e048cd39adaccd2de14;p=ceph.git crimosn/osd: logger into log_file set seastar ostream to log_file Signed-off-by: Nitzan Mordechai --- diff --git a/src/crimson/osd/main.cc b/src/crimson/osd/main.cc index 9076a58f3097..e81bff4ea1f7 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(