Sets up a file with the given path, or if split_files_after
is given, creates a directory to store the files. By default the logging will not be time tagged and will be appending to the file / creating more files. If time_tagged
is Clock
, entries will be tagged with a date and clock time; if it is Elapsed
, they will be tagged with the time span elapsed since the start of the process (using Mtime_clock.elapsed
). If split_files_after
is given and for_append
is false, clears the directory. If the opened file exceeds split_files_after
characters, Shared_config.refresh_ch ()
returns true; if in that case Shared_config.debug_ch ()
is called, it will create and return a new file.
If elapsed_times
is different from Not_reported
, the elapsed time spans are printed for log subtrees, in the corresponding units with precision up to 1%. The times include printing out logs, therefore might not be reliable for profiling. In the runtime creation functions, elapsed_times
defaults to Not_reported
.
If print_entry_ids
is true, the entry_id
identifiers are printed on log headers with the syntax {#ID}
; by default they are omitted. If verbose_entry_ids
is true, the entry_id
identifiers are also printed on logged values.
If global_prefix
is given, the log header messages (and the log closing messages for the flushing backend) are prefixed with it.
If table_of_contents_ch
is given, outputs selected log headers to this channel. The provided file name is used as a prefix for links to anchors of the log headers. Note that debug runtime builders that take a channel instead of a file name, will use global_prefix
instead for the anchor links. The settings toc_entry_minimal_depth
and toc_entry_minimal_size
control the selection of headers to include in a ToC (they default to 0).