logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

To make logging a little less painful, various helper macros are provided. See the following example.

Author

       MongoDB, Inc

Custom Log Handlers

       The  default  log  handler  prints  a timestamp and the log message to stdout, or to stderr for warnings,
       critical messages, and errors.  You can override the handler with mongoc_log_set_handler().  Your handler
       function is called in a mutex for thread safety.

       For example, you could register a custom handler to suppress messages at INFO level and below:

          void
          my_logger (mongoc_log_level_t log_level,
                     const char *log_domain,
                     const char *message,
                     void *user_data)
          {
             /* smaller values are more important */
             if (log_level < MONGOC_LOG_LEVEL_INFO) {
                mongoc_log_default_handler (log_level, log_domain, message, user_data);
             }
          }

          int
          main (int argc, char *argv[])
          {
             mongoc_log_set_handler (my_logger, NULL);
             mongoc_init ();

             /* ... your code ...  */

             mongoc_cleanup ();
             return 0;
          }

       Note that in the example above mongoc_log_set_handler() is called before mongoc_init().  Otherwise,  some
       log traces could not be processed by the log handler.

       To restore the default handler:

          mongoc_log_set_handler (mongoc_log_default_handler, NULL);

Disable Logging

       To disable all logging, including warnings, critical messages and errors, provide an empty log handler:

          mongoc_log_set_handler (NULL, NULL);

Macros

       To make logging a little less painful, various helper macros are provided. See the following example.

          #undef MONGOC_LOG_DOMAIN
          #define MONGOC_LOG_DOMAIN "my-custom-domain"

          MONGOC_WARNING ("An error occurred: %s", strerror (errno));

Tracing

       If  compiling  your  own  copy  of the MongoDB C driver, consider configuring with -DENABLE_TRACING=ON to
       enable function tracing and hex dumps of network packets to STDERR  and  STDOUT  during  development  and
       debugging.

       This is especially useful when debugging what may be going on internally in the driver.

       Trace    messages    can   be   enabled   and   disabled   by   calling   mongoc_log_trace_enable()   and
       mongoc_log_trace_disable()NOTE:
          Compiling the driver with -DENABLE_TRACING=ON will affect  its  performance.  Disabling  tracing  with
          mongoc_log_trace_disable() significantly reduces the overhead, but cannot remove it completely.

See Also