MCPcopy Create free account
hub / github.com/couchbase/couchbase-python-client / pycbc_logger__create_logger__

Function pycbc_logger__create_logger__

src/logger.cxx:67–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65}
66
67PyObject*
68pycbc_logger__create_logger__(PyObject* self, PyObject* args, PyObject* kwargs)
69{
70 auto logger = reinterpret_cast<pycbc_logger*>(self);
71 char* log_level = nullptr;
72 char* log_filename = nullptr;
73 int enable_console = 0;
74 const char* kw_list[] = { "level", "filename", "enable_console", nullptr };
75 const char* kw_format = "s|si";
76 if (!PyArg_ParseTupleAndKeywords(args,
77 kwargs,
78 kw_format,
79 const_cast<char**>(kw_list),
80 &log_level,
81 &log_filename,
82 &enable_console)) {
83 return raise_invalid_argument(
84 "Cannot create logger. Unable to parse args/kwargs.", __FILE__, __LINE__);
85 }
86
87 if (couchbase::core::logger::is_initialized()) {
88 return raise_invalid_argument(
89 "Cannot create logger. Another logger has already been initialized.", __FILE__, __LINE__);
90 }
91
92 if (log_level == nullptr) {
93 return raise_invalid_argument(
94 "Cannot create logger. Unable to determine log level.", __FILE__, __LINE__);
95 }
96 auto level = couchbase::core::logger::level_from_str(log_level);
97 if (log_filename != nullptr) {
98 couchbase::core::logger::configuration configuration{};
99 configuration.filename = std::string{ log_filename };
100 configuration.log_level = level;
101 configuration.console = enable_console > 0;
102 couchbase::core::logger::create_file_logger(configuration);
103 logger->is_file_logger = true;
104 } else {
105 couchbase::core::logger::create_console_logger();
106 couchbase::core::logger::set_log_levels(level);
107 logger->is_console_logger = true;
108 }
109 Py_RETURN_NONE;
110}
111
112PyObject*
113pycbc_logger__enable_protocol_logger__(PyObject* self, PyObject* args, PyObject* kwargs)

Callers

nothing calls this directly

Calls 1

raise_invalid_argumentFunction · 0.85

Tested by

no test coverage detected