From: | Арсений Косицын <a(dot)kositsyn(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | [PATCH] Fixed creation of empty .log files during log rotation |
Date: | 2024-10-29 08:08:37 |
Message-ID: | 0acde6ec-7413-4a27-a2be-49897ae67e61@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi everyone!
A situation has been discovered in which empty .log files are being created.
--Reproduce:
1) You need to set the following parameters in the "postgresql.conf" file:
log_destination = 'csvlog'
logging_collector = on
log_rotation_age = 1min
log_directory = '/home/user/builds/postgresql/log'
2) After starting the server, two files are being created in the
directory with logs:
-rw------- 1 user user 1,4K oct 10 13:29 postgresql-2024-10-10_132907.csv
-rw------- 1 user user 172 oct 10 13:29 postgresql-2024-10-10_132907.log
3) The .log file is created anyway, regardless of the log_destination
parameter.
The following message is displayed in the .log file (due to the fact
that the log_destination
parameter is set = 'csvlog'):
|
|2024-10-10 13:05:52.539 MSK [1629065] LOG: ending log output to stderr
2024-10-10 13:05:52.539 MSK [1629065] HINT: Future log output will go
to log destination "csvlog".
Next, the stderr stream is redirected to a .csv file.
4) Now, logs are rotated once a minute (due to the set log_rotation_age
parameter). Moreover, all
open log files are rotated, including the .log file that I wrote about
above. New ones are being created
.csv and .log files. Logs themselves are sent to .csv, and nothing else
is output to .log
and it remains empty:
-rw------- 1 user user 1,4K oct 10 13:29 postgresql-2024-10-10_132907.csv
-rw------- 1 user user 172 oct 10 13:29 postgresql-2024-10-10_132907.log
-rw------- 1 user user 1,4K oct 10 13:30 postgresql-2024-10-10_133000.csv
-rw------- 1 user user 0 oct 10 13:30 postgresql-2024-10-10_133000.log
--Fix:
To correct the situation, you can add a check for the "Log_destination"
parameter in the "logfile_rotate()"
function of the "syslogger.c" module. Then only the logs specified in
this parameter will be rotated.Thisis doneinthe proposedpatch.
Best regards,
Arseny Kositsin.
Attachment | Content-Type | Size |
---|---|---|
v1-0001-Fixed-creation-of-an-empty-.log-file.patch | text/x-patch | 2.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2024-10-29 08:20:42 | Re: Add isolation test template in injection_points for wait/wakeup/detach |
Previous Message | Peter Eisentraut | 2024-10-29 08:06:32 | Remove useless casts to (void *) |