Name: H5Pset_fapl_log
Signature:
  herr_t `H5Pset_fapl_log`( hid_t `fapl_id`, const char *`logfile`, unsigned int `flags`, size_t `buf_size` )
Purpose:
  Sets up the use of the logging driver.
Description:
  `H5Pset_fapl_log` modifies the file access property list to use the logging driver `H5FD_LOG`.

  `logfile` is the name of the file in which the logging entries are to be recorded.

  The actions to be logged are specified in the parameter `flags` using the pre-defined constants described in the following table. Multiple flags can be set through the use of an logical OR contained in parentheses. For example, logging read and write locations would be specified as `(H5FD_LOG_LOC_READ|H5FD_LOG_LOC_WRITE)`.

  Flag | Description
  `H5FD_LOG_LOC_READ` | Track the location and length of every read, write, or seek operation.
  `H5FD_LOG_LOC_WRITE`
  `H5FD_LOG_LOC_SEEK`
  `H5FD_LOG_LOC_IO` | Track all I/O locations and lengths. The logical equivalent of the following:
  `` | `(H5FD_LOG_LOC_READ | H5FD_LOG_LOC_WRITE | H5FD_LOG_LOC_SEEK)`
  `H5FD_LOG_FILE_READ` | Track the number of times each byte is read or written.
  `H5FD_LOG_FILE_WRITE`
  `H5FD_LOG_FILE_IO` | Track the number of times each byte is read and written. The logical equivalent of the following:
  `` | `(H5FD_LOG_FILE_READ | H5FD_LOG_FILE_WRITE)`
  `H5FD_LOG_FLAVOR` | Track the type, or flavor, of information stored at each byte.
  `H5FD_LOG_NUM_READ` | Track the total number of read, write, or seek operations that occur.
  `H5FD_LOG_NUM_WRITE`
  `H5FD_LOG_NUM_SEEK`
  `H5FD_LOG_NUM_IO` | Track the total number of all types of I/O operations. The logical equivalent of the following:
  `` | `(H5FD_LOG_NUM_READ | H5FD_LOG_NUM_WRITE | H5FD_LOG_NUM_SEEK)`
  `H5FD_LOG_TIME_OPEN` | Track the time spent in open, read, write, seek, or close operations. Not implemented in this release: open and read Partially implemented: write and seek Fully implemented: close
  `H5FD_LOG_TIME_READ`
  `H5FD_LOG_TIME_WRITE`
  `H5FD_LOG_TIME_SEEK`
  `H5FD_LOG_TIME_CLOSE`
  `H5FD_LOG_TIME_IO` | Track the time spent in each of the above operations. The logical equivalent of the following:
  `` | `(H5FD_LOG_TIME_OPEN | H5FD_LOG_TIME_READ | H5FD_LOG_TIME_WRITE | H5FD_LOG_TIME_SEEK | H5FD_LOG_TIME_CLOSE)`
  `H5FD_LOG_ALLOC` | Track the allocation of space in the file.
  `H5FD_LOG_ALL` | Track everything. The logical equivalent of the following:
  `` | `(H5FD_LOG_ALLOC | H5FD_LOG_TIME_IO | H5FD_LOG_NUM_IO | H5FD_LOG_FLAVOR |H5FD_LOG_FILE_IO | H5FD_LOG_LOC_IO)`

  The logging driver can track the number of times each byte in the file is read from or written to (using `H5FD_LOG_FILE_READ` and `H5FD_LOG_FILE_WRITE`) and what kind of data is at that location (e.g., meta data, raw data; using `H5FD_LOG_FLAVOR`). This information is tracked in a buffer of size `buf_size`, which must be at least the size in bytes of the file to be logged.

Parameters:

hid_t `fapl_id` | IN: File access property list identifier.
char *`logfile` | IN: Name of the log file.
unsigned int `flags` | IN: Flags specifying the types of logging activity.
size_t `buf_size` | IN: The size of the logging buffer.

Returns:
  Returns non-negative if successful. Otherwise returns negative.
Fortran90 Interface:
  None.
History:

Release | C
1.6.0 | The `verbosity` parameter has been removed. Two new parameters have been added: `flags` of type unsigned and `buf_size` of type size_t.
1.4.0 | Function introduced in this release.