@@ -85,15 +85,19 @@ log still logs to ancestor logs if they are themselves enabled.
8585Errors
8686------
8787
88- If there is an error when parsing a :class: `<log-formatter> ` format
89- control string or in finding a :class: `<log> ` object by name, a
90- :class: `<logging-error> ` will be signaled.
91-
9288.. class :: <logging-error>
9389 :open:
9490
9591 :superclasses: :drm: `<error> `, :class: `<simple-condition> `
9692
93+ :description:
94+
95+ Errors explicitly signaled by this library are instances of
96+ :class: `<logging-error> `. Examples of when this error is signaled:
97+
98+ * Parsing a bad :class: `<log-formatter> ` format control string.
99+ * Can't find a :class: `<log> ` object by name.
100+ * Can't roll a log file due to file name conflicts.
97101
98102Log Levels
99103----------
@@ -435,7 +439,21 @@ Log Targets
435439 :keyword roll:
436440 A :drm: `<boolean> ` specifying whether to roll the log file at the
437441 time this log target is created, if it already exists and is not
438- empty.
442+ empty. The default is :drm: `#t `.
443+
444+ :description:
445+
446+ A file log target that is "rolled" when it reaches a maximum size. Rolling the log
447+ file consists of renaming the current file to a name that contains the date the
448+ original file was *created *. For example, :file: `foo.log ` might be renamed to
449+ :file: `foo.log.20260303T185404 `. (Note that the date is in local time.)
450+
451+ If the log file is rolled multiple times within the same second (e.g., due to a
452+ crash loop in your program) it will encounter file name conflicts. To resolve the
453+ conflict the file is renamed with an additional numeric suffix concatenated to the
454+ date, for example :file: `foo.log.20260303T185404.1 `. After the suffix reaches
455+ ``.9 `` and the file still can't be renamed without clobbering an existing file, a
456+ :class: `<logging-error> ` is signaled.
439457
440458.. class :: <stream-log-target>
441459 :open:
0 commit comments