2121
2222#include " parse_arguments.h"
2323
24+ #include < spdlog/spdlog.h>
25+
2426#include < iostream>
2527#include < string>
2628
@@ -42,7 +44,8 @@ std::optional<ModelDescription> parse_arguments(int argc, char** argv)
4244 " log_path" , po::value<std::string>()->default_value (" " ),
4345 " path for putting logs. if no path is specified, no logs will be produced." )(
4446 " model_path" , po::value<std::string>()->default_value (" " ),
45- " path for saving trained model. if no path is specified, model wont be saved." );
47+ " path for saving trained model. if no path is specified, model wont be saved." )(
48+ " spdlog_level" , po::value<std::string>()->default_value (" info" ), " spdlog logging level." );
4649
4750 po::variables_map vm;
4851 po::store (po::parse_command_line (argc, argv, desc), vm);
@@ -154,5 +157,22 @@ std::optional<ModelDescription> parse_arguments(int argc, char** argv)
154157 model_desc.model_saving_path_ = " " ;
155158 }
156159
160+ if (vm.count (" spdlog_level" ))
161+ {
162+ model_desc.spdlog_level_ = spdlog::level::from_str (vm[" spdlog_level" ].as <std::string>());
163+ if (model_desc.spdlog_level_ == spdlog::level::off)
164+ {
165+ std::cout << " Spdlog logging level is incorrect." << std::endl;
166+ std::cout << desc << std::endl;
167+ return std::nullopt ;
168+ }
169+ }
170+ else
171+ {
172+ std::cout << " Spdlog logging level not specified." << std::endl;
173+ std::cout << desc << std::endl;
174+ return std::nullopt ;
175+ }
176+
157177 return model_desc;
158178}
0 commit comments