switchinglogfilehandlers/README.md

49 lines
2.1 KiB
Markdown

switchinglogfilehandlers
========================
A collection of switching log file handlers for the Python logging system.
Unlike the *rotating* log file handlers in the Python core which always
write to a file with a fixed name and peridically rename that, these
handlers always open a new file with a unique name - old files will
never be renamed.
TimedSwitchingFileHandler
-------------------------
This file handler starts a new file at regular intervals, comparable to
the TimedRotatingFileHandler. The switch always occurs at a “round”
time, i.e. at the hour for hourly switches, at midnight for daily
switches, etc. The old file stays open until just before the first log
entry is written to the new file.
### Parameters
| Parameter | Default | Description |
|-|-|-|
| `filename` | (required) | Path to the log files. The timestamp and `.log` is appended |
| `when` | `'h'` | When log files are switched: (every **s**econd, **m**inute, **h**our, **d**ay, **w**eek) |
| `utc` | `False` | Timestamps are in UTC (otherwise local time) |
| `create_directory` | `False` | Intermediate directories in `filename` are created if necessary |
TimeoutSwitchingFileHandler
---------------------------
This file handler automatically closes the log file after a period of
inactivity (or after the file has been open for some time whichever
comes first) and then opens a new file at the next emit.
This is useful for long-running processes where short periods of
activity alternate with periods of inactivity. Log switchse will
typically occur during inactivity, so each log file will include one
complete active period. Also, since the log files are closed, they can
be safely compressed or removed.
### Parameters
| Parameter | Default | Description |
|-|-|-|
| `filename` | (required) | Path to the log files. The timestamp is appended |
| `min_timeout` | `60` | Logfile is closed if there hasn't been any activity for `min_timeout` seconds |
| `max_timeout` | `3600` | Logfile is closed if is has been created `max_timeout` seconds ago |
| `create_directory` | `False` | Intermediate directories in `filename` are created if necessary |