Refactor set of routines specific to elog.c
authorMichael Paquier <michael@paquier.xyz>
Wed, 12 Jan 2022 05:16:59 +0000 (14:16 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 12 Jan 2022 05:16:59 +0000 (14:16 +0900)
commitac7c80758a7ad6369aefce7406f08c689144ec4b
tree2a42b18e86912ceb5137eaf6033bf443b3a37bc9
parent9a3d8e1886670ca3532687c5336d97965a79a084
Refactor set of routines specific to elog.c

This refactors the following routines and facilities coming from
elog.c, to ease their use across multiple log destinations:
- Start timestamp, including its reset, to store when a process has been
started.
- The log timestamp, associated to an entry (the same timestamp is used
when logging across multiple destinations).
- Routine deciding if a query can be logged or not.
- The backend type names, depending on the process that logs any
information (postmaster, bgworker name or just GetBackendTypeDesc() with
a regular backend).
- Write of logs using the logging piped protocol, with the log collector
enabled.
- Error severity converted to a string.

These refactored routines will be used for some follow-up changes
to move all the csvlog logic into its own file and to potentially add
JSON as log destination, reducing the overall size of elog.c as the end
result.

Author: Michael Paquier, Sehrope Sarkuni
Reviewed-by: Nathan Bossart
Discussion: https://postgr.es/m/CAH7T-aqswBM6JWe4pDehi1uOiufqe06DJWaU5=X7dDLyqUExHg@mail.gmail.com
src/backend/utils/error/elog.c
src/include/utils/elog.h