Skip to content

Commit 56bde35

Browse files
committed
PYCBC-1679: Disable console logger if file logger specified
Changes ======= * If the `PYCBC_LOG_FILE` environment variable is set (enabling the C++ core file logger), the C++ console logger will be disabled. * If the file logger is enabled, the console logger may also be enabled if the `PYCBC_ENABLE_CONSOLE` environment variable is set. Change-Id: I008f780760674b967fda9e0f3f370af1652812a6 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/226431 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
1 parent 4f941c6 commit 56bde35

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

couchbase/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,10 @@ def configure_console_logger():
146146
if log_level:
147147
log_file = os.getenv('PYCBC_LOG_FILE', None)
148148
if log_file:
149-
_PYCBC_LOGGER.create_logger(level=log_level.lower(), filename=log_file)
149+
enable_console_logging = 0 if os.getenv('PYCBC_ENABLE_CONSOLE', None) is None else 1
150+
_PYCBC_LOGGER.create_logger(level=log_level.lower(),
151+
filename=log_file,
152+
enable_console=enable_console_logging)
150153
else:
151154
_PYCBC_LOGGER.create_logger(level=log_level.lower())
152155
logging.getLogger().debug(get_metadata(as_str=True))

src/logger.cxx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,16 @@ pycbc_logger__create_logger__(PyObject* self, PyObject* args, PyObject* kwargs)
7171
auto logger = reinterpret_cast<pycbc_logger*>(self);
7272
char* log_level = nullptr;
7373
char* log_filename = nullptr;
74-
const char* kw_list[] = { "level", "filename", nullptr };
75-
const char* kw_format = "s|s";
76-
if (!PyArg_ParseTupleAndKeywords(
77-
args, kwargs, kw_format, const_cast<char**>(kw_list), &log_level, &log_filename)) {
74+
int enable_console = 0;
75+
const char* kw_list[] = { "level", "filename", "enable_console", nullptr };
76+
const char* kw_format = "s|si";
77+
if (!PyArg_ParseTupleAndKeywords(args,
78+
kwargs,
79+
kw_format,
80+
const_cast<char**>(kw_list),
81+
&log_level,
82+
&log_filename,
83+
&enable_console)) {
7884
pycbc_set_python_exception(PycbcError::InvalidArgument,
7985
__FILE__,
8086
__LINE__,
@@ -103,6 +109,7 @@ pycbc_logger__create_logger__(PyObject* self, PyObject* args, PyObject* kwargs)
103109
couchbase::core::logger::configuration configuration{};
104110
configuration.filename = std::string{ log_filename };
105111
configuration.log_level = level;
112+
configuration.console = enable_console > 0;
106113
couchbase::core::logger::create_file_logger(configuration);
107114
logger->is_file_logger = true;
108115
} else {

0 commit comments

Comments
 (0)