mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Introduce log_destination=jsonlog
"jsonlog" is a new value that can be added to log_destination to provide logs in the JSON format, with its output written to a file, making it the third type of destination of this kind, after "stderr" and "csvlog". The format is convenient to feed logs to other applications. There is also a plugin external to core that provided this feature using the hook in elog.c, but this had to overwrite the output of "stderr" to work, so being able to do both at the same time was not possible. The files generated by this log format are suffixed with ".json", and use the same rotation policies as the other two formats depending on the backend configuration. This takes advantage of the refactoring work done previously inac7c807,bed6ed3,8b76f89and2d77d83for the backend parts, and72b76f7for the TAP tests, making the addition of any new file-based format rather straight-forward. The documentation is updated to list all the keys and the values that can exist in this new format. pg_current_logfile() also required a refresh for the new option. Author: Sehrope Sarkuni, Michael Paquier Reviewed-by: Nathan Bossart, Justin Pryzby Discussion: https://postgr.es/m/CAH7T-aqswBM6JWe4pDehi1uOiufqe06DJWaU5=X7dDLyqUExHg@mail.gmail.com
This commit is contained in:
@@ -436,6 +436,7 @@ extern bool syslog_split_messages;
|
||||
#define LOG_DESTINATION_SYSLOG 2
|
||||
#define LOG_DESTINATION_EVENTLOG 4
|
||||
#define LOG_DESTINATION_CSVLOG 8
|
||||
#define LOG_DESTINATION_JSONLOG 16
|
||||
|
||||
/* Other exported functions */
|
||||
extern void DebugFileOpen(void);
|
||||
@@ -453,6 +454,7 @@ extern void write_pipe_chunks(char *data, int len, int dest);
|
||||
|
||||
/* Destination-specific functions */
|
||||
extern void write_csvlog(ErrorData *edata);
|
||||
extern void write_jsonlog(ErrorData *edata);
|
||||
|
||||
#ifdef HAVE_SYSLOG
|
||||
extern void set_syslog_parameters(const char *ident, int facility);
|
||||
|
||||
Reference in New Issue
Block a user