| 
 |     | 
The Logging subsystem is the logging facility used by Berkeley DB. It is largely Berkeley DB-specific, although it is potentially useful outside of the Berkeley DB package for applications wanting write-ahead logging support. Applications wanting to use the log for purposes other than logging file modifications based on a set of open file descriptors will almost certainly need to make source code modifications to the Berkeley DB code base.
A log can be shared by any number of threads of control. The DB_ENV->open interface is used to open a log. When the log is no longer in use, it should be closed using the DB_ENV->close interface.
Individual log entries are identified by log sequence numbers. Log sequence numbers are stored in an opaque object, a DB_LSN.
The DB_ENV->log_cursor method is used to allocate a log cursor. Log cursors have two methods: DB_LOGC->get method to retrieve log records from the log, and DB_LOGC->close method to destroy the cursor.
There are additional interfaces for integrating the log subsystem with a transaction processing system:
| Logging Subsystem and Related Methods | Description | 
|---|---|
| DB_ENV->log_archive | List log and database files | 
| DB_ENV->log_cursor | Create a log cursor handle | 
| DB_ENV->log_file | Map Log Sequence Numbers to log files | 
| DB_ENV->log_flush | Flush log records | 
| DB_ENV->log_put | Write a log record | 
| DB_ENV->set_lg_bsize | Set log buffer size | 
| DB_ENV->set_lg_dir | Set the environment logging directory | 
| DB_ENV->set_lg_max | Set log file size | 
| DB_ENV->set_lg_regionmax | Set logging region size | 
| log_compare | Compare two Log Sequence Numbers | 
| DB_ENV->log_stat | Return log subsystem statistics | 
| DB_LOGC->close | Close a log cursor | 
| DB_LOGC->get | Retrieve a log record | 
|     |