#include <db_cxx.h>
 
void Db::set_msgcall(void (*db_msgcall_fcn)(const DbEnv *dbenv, 
                                            char *msg));
      There are interfaces in the Berkeley DB library which either directly output informational messages or statistical information, or configure the library to output such messages when performing other operations, for example, DbEnv::set_verbose() and DbEnv::stat_print().
         The DbEnv::set_msgcall() and 
         Db::set_msgcall() methods are used to
         pass these messages to the application, and Berkeley DB will call
         db_msgcall_fcn with each message.  It
         is up to the db_msgcall_fcn function
         to display the message in an appropriate manner.
    
Setting db_msgcall_fcn to NULL unconfigures the callback interface.
Alternatively, you can use the DbEnv::set_error_stream() and Db::set_error_stream() methods to display the messages via an output stream, or the Db::set_msgfile() or Db::set_msgfile() methods to display the messages via a C library FILE *. You should not mix these approaches.
         For Db  handles opened
         inside of Berkeley DB environments, calling the Db::set_msgcall()
         method affects the entire environment and is equivalent to calling the
         DbEnv::set_msgcall() method.
    
         The Db::set_msgcall() method configures operations performed using
         the specified Db  handle,
         not all operations performed on the underlying database.
    
         The Db::set_msgcall() method may be called at any time during the
         life of the application.
    
Berkeley DB is not re-entrant. Callback functions should not attempt to make library calls (for example, to release locks or close open handles). Re-entering Berkeley DB is not guaranteed to work correctly, and the results are undefined.