| 240 | } |
| 241 | |
| 242 | void init_logger(py::module &m) |
| 243 | { |
| 244 | auto logger = py::class_<Logger>(m, "Logger", "Logger class which can format and output varies levels of logs."); |
| 245 | |
| 246 | py::native_enum<Logger::Level>(logger, "Level", "enum.IntEnum", "Specifies the log level.") |
| 247 | .value("TRACE", Logger::Level::Trace) |
| 248 | .value("DEBUG", Logger::Level::Debug) |
| 249 | .value("INFO", Logger::Level::Info) |
| 250 | .value("WARNING", Logger::Level::Warning) |
| 251 | .value("ERROR", Logger::Level::Error) |
| 252 | .value("CRITICAL", Logger::Level::Critical) |
| 253 | .export_values() |
| 254 | .finalize(); |
| 255 | |
| 256 | logger.def("set_level", &Logger::setLevel, py::arg("level"), "Set the logging level for this Logger instance.") |
| 257 | .def("is_enabled_for", &Logger::isEnabledFor, py::arg("level"), |
| 258 | "Check if the Logger instance is enabled for the given log Level.") |
| 259 | .def( |
| 260 | "trace", [](const Logger &self, const std::string_view message) { self.log(Logger::Trace, message); }, |
| 261 | py::arg("message"), "Log a message at the TRACE level.") |
| 262 | .def( |
| 263 | "debug", [](const Logger &self, const std::string_view message) { self.log(Logger::Debug, message); }, |
| 264 | py::arg("message"), "Log a message at the DEBUG level.") |
| 265 | .def( |
| 266 | "info", [](const Logger &self, const std::string_view message) { self.log(Logger::Info, message); }, |
| 267 | py::arg("message"), "Log a message at the INFO level.") |
| 268 | .def( |
| 269 | "warning", [](const Logger &self, const std::string_view message) { self.log(Logger::Warning, message); }, |
| 270 | py::arg("message"), "Log a message at the WARNING level.") |
| 271 | .def( |
| 272 | "error", [](const Logger &self, const std::string_view message) { self.log(Logger::Error, message); }, |
| 273 | py::arg("message"), "Log a message at the ERROR level.") |
| 274 | .def( |
| 275 | "critical", [](const Logger &self, const std::string_view message) { self.log(Logger::Critical, message); }, |
| 276 | py::arg("message"), "Log a message at the CRITICAL level.") |
| 277 | .def_property_readonly("name", &Logger::getName, "Get the name of this Logger instance."); |
| 278 | } |
| 279 | |
| 280 | void init_registry(py::module_ &m) |
| 281 | { |
no test coverage detected