mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
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
This commit is contained in:
@@ -442,6 +442,18 @@ extern void DebugFileOpen(void);
|
||||
extern char *unpack_sql_state(int sql_state);
|
||||
extern bool in_error_recursion_trouble(void);
|
||||
|
||||
/* Common functions shared across destinations */
|
||||
extern void reset_formatted_start_time(void);
|
||||
extern char *get_formatted_start_time(void);
|
||||
extern char *get_formatted_log_time(void);
|
||||
extern const char *get_backend_type_for_log(void);
|
||||
extern bool check_log_of_query(ErrorData *edata);
|
||||
extern const char *error_severity(int elevel);
|
||||
extern void write_pipe_chunks(char *data, int len, int dest);
|
||||
|
||||
/* Destination-specific functions */
|
||||
extern void write_csvlog(ErrorData *edata);
|
||||
|
||||
#ifdef HAVE_SYSLOG
|
||||
extern void set_syslog_parameters(const char *ident, int facility);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user