[GENERAL] Writing a C function to return the log file name
От | Kouber Saparev |
---|---|
Тема | [GENERAL] Writing a C function to return the log file name |
Дата | |
Msg-id | CAN4RuQvLgUozDiM9Dgry9C27uNwjQnNa5xUOdBn9=47fY-KtCQ@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: [GENERAL] Writing a C function to return the log file name
|
Список | pgsql-general |
Hello,
I am trying to write a function in C to return the log file name by given timestamp. I will use that later to make dynamic creation of a foreign table (file_fdw) to read the csv logs themselves. The thing is I do now want to hardcode neither the format, nor the directory in my extension.
I already looked into the adminpack extension, but the format is hardcoded to the default one there, so it does not serve my needs.
Here is what I currently have:
The thing is the function is returning random results, obtained by pg_strftime().
kouber=# select now()::timestamp, sqlog.log_path(now()::timestamp);
NOTICE: Log directory = "pg_log"
NOTICE: Log filename = "postgresql-%F.log"
NOTICE: Length = "7"
NOTICE: Filename = "pg_log/postgresql-17422165-04-30.log"
now | log_path
----------------------------+--------------------------------------
2017-06-02 14:17:47.832446 | pg_log/postgresql-17422165-04-30.csv
(1 row)
kouber=# select now()::timestamp, sqlog.log_path(now()::timestamp);
NOTICE: Log directory = "pg_log"
NOTICE: Log filename = "postgresql-%F.log"
NOTICE: Length = "7"
NOTICE: Filename = "pg_log/postgresql-17422166-02-08.log"
now | log_path
----------------------------+--------------------------------------
2017-06-02 14:18:12.390558 | pg_log/postgresql-17422166-02-08.csv
(1 row)
NOTICE: Log directory = "pg_log"
NOTICE: Log filename = "postgresql-%F.log"
NOTICE: Length = "7"
NOTICE: Filename = "pg_log/postgresql-17422165-04-30.log"
now | log_path
----------------------------+--------------------------------------
2017-06-02 14:17:47.832446 | pg_log/postgresql-17422165-04-30.csv
(1 row)
kouber=# select now()::timestamp, sqlog.log_path(now()::timestamp);
NOTICE: Log directory = "pg_log"
NOTICE: Log filename = "postgresql-%F.log"
NOTICE: Length = "7"
NOTICE: Filename = "pg_log/postgresql-17422166-02-08.log"
now | log_path
----------------------------+--------------------------------------
2017-06-02 14:18:12.390558 | pg_log/postgresql-17422166-02-08.csv
(1 row)
Any idea what am I doing wrong?
I copied logfile_getname() from syslogger.c, and simply added some debug messages in there.
Regards,
--
Kouber Saparev
В списке pgsql-general по дате отправления: