MCPcopy Create free account
hub / github.com/FEniCS/dolfinx / log

Function log

python/dolfinx/wrappers/log.cpp:20–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18namespace dolfinx_wrappers
19{
20void log(nb::module_& m)
21{
22 // log level enums
23 nb::enum_<spdlog::level::level_enum>(m, "LogLevel", nb::is_arithmetic())
24 .value("TRACE", spdlog::level::level_enum::trace)
25 .value("DEBUG", spdlog::level::level_enum::debug)
26 .value("INFO", spdlog::level::level_enum::info)
27 .value("WARNING", spdlog::level::level_enum::warn)
28 .value("ERROR", spdlog::level::level_enum::err)
29 .value("CRITICAL", spdlog::level::level_enum::critical)
30 .value("OFF", spdlog::level::level_enum::off);
31
32 m.def(
33 "set_output_file",
34 [](const std::string& filename)
35 {
36 try
37 {
38 auto logger = spdlog::basic_logger_mt("dolfinx", filename.c_str());
39 spdlog::set_default_logger(logger);
40 }
41 catch (const spdlog::spdlog_ex& ex)
42 {
43 std::cout << "Log init failed: " << ex.what() << "\n";
44 }
45 },
46 nb::arg("filename"));
47
48 m.def(
49 "set_thread_name",
50 [](const std::string& thread_name)
51 {
52 std::string fmt
53 = "[%Y-%m-%d %H:%M:%S.%e] [" + thread_name + "] [%l] %v";
54 spdlog::set_pattern(fmt);
55 },
56 nb::arg("thread_name"));
57
58 m.def(
59 "set_log_level", [](spdlog::level::level_enum level)
60 { spdlog::set_level(level); }, nb::arg("level"));
61 m.def("get_log_level", []() { return spdlog::get_level(); });
62 m.def(
63 "log",
64 [](spdlog::level::level_enum level, const std::string& s)
65 {
66 switch (level)
67 {
68 case (spdlog::level::level_enum::trace):
69 spdlog::trace(s.c_str());
70 break;
71 case (spdlog::level::level_enum::debug):
72 spdlog::debug(s.c_str());
73 break;
74 case (spdlog::level::level_enum::info):
75 spdlog::info(s.c_str());
76 break;
77 case (spdlog::level::level_enum::warn):

Callers 2

cffi_utilsClass · 0.90
NB_MODULEFunction · 0.85

Calls 1

valueMethod · 0.45

Tested by

no test coverage detected