log_fdw

log_fdw

log_fdw : foreign-data wrapper for Postgres log file access

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
8810
log_fdw
log_fdw
1.4
FDW
Apache-2.0
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
See Also
pg_sqlog
pgaudit
file_fdw
auto_explain
pgauditlogtofile
logerrors
wrappers
multicorn

PG18 fixed by vonng

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
1.4
18
17
16
15
14
log_fdw-
RPM
PIGSTY
1.4
18
17
16
15
14
log_fdw_$v-
DEB
PIGSTY
1.4
18
17
16
15
14
postgresql-$v-log-fdw-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
el8.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
el9.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
el9.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
el10.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
el10.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
d12.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
d12.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
d13.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
d13.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
u22.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
u22.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
u24.x86_64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
u24.aarch64
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PIGSTY 1.4
PackageVersionOSORGSIZEFile URL
log_fdw_171.4el8.x86_64pigsty20.0 KiBlog_fdw_17-1.4-2PIGSTY.el8.x86_64.rpm
log_fdw_171.4el8.x86_64pigsty19.4 KiBlog_fdw_17-1.4-1PIGSTY.el8.x86_64.rpm
log_fdw_171.4el8.aarch64pigsty20.1 KiBlog_fdw_17-1.4-2PIGSTY.el8.aarch64.rpm
log_fdw_171.4el8.aarch64pigsty19.2 KiBlog_fdw_17-1.4-1PIGSTY.el8.aarch64.rpm
log_fdw_171.4el9.x86_64pigsty20.2 KiBlog_fdw_17-1.4-2PIGSTY.el9.x86_64.rpm
log_fdw_171.4el9.x86_64pigsty19.8 KiBlog_fdw_17-1.4-1PIGSTY.el9.x86_64.rpm
log_fdw_171.4el9.aarch64pigsty20.1 KiBlog_fdw_17-1.4-2PIGSTY.el9.aarch64.rpm
log_fdw_171.4el9.aarch64pigsty19.4 KiBlog_fdw_17-1.4-1PIGSTY.el9.aarch64.rpm
log_fdw_171.4el10.x86_64pigsty20.3 KiBlog_fdw_17-1.4-2PIGSTY.el10.x86_64.rpm
log_fdw_171.4el10.x86_64pigsty19.8 KiBlog_fdw_17-1.4-1PIGSTY.el10.x86_64.rpm
log_fdw_171.4el10.aarch64pigsty20.3 KiBlog_fdw_17-1.4-2PIGSTY.el10.aarch64.rpm
postgresql-17-log-fdw1.4d12.x86_64pigsty27.2 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~bookworm_amd64.deb
postgresql-17-log-fdw1.4d12.aarch64pigsty27.1 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~bookworm_arm64.deb
postgresql-17-log-fdw1.4d13.x86_64pigsty27.2 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~trixie_amd64.deb
postgresql-17-log-fdw1.4d13.aarch64pigsty27.2 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~trixie_arm64.deb
postgresql-17-log-fdw1.4u22.x86_64pigsty34.4 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~jammy_amd64.deb
postgresql-17-log-fdw1.4u22.aarch64pigsty34.0 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~jammy_arm64.deb
postgresql-17-log-fdw1.4u24.x86_64pigsty28.1 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~noble_amd64.deb
postgresql-17-log-fdw1.4u24.aarch64pigsty28.2 KiBpostgresql-17-log-fdw_1.4-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
log_fdw_161.4el8.x86_64pigsty20.0 KiBlog_fdw_16-1.4-2PIGSTY.el8.x86_64.rpm
log_fdw_161.4el8.x86_64pigsty19.3 KiBlog_fdw_16-1.4-1PIGSTY.el8.x86_64.rpm
log_fdw_161.4el8.aarch64pigsty20.1 KiBlog_fdw_16-1.4-2PIGSTY.el8.aarch64.rpm
log_fdw_161.4el8.aarch64pigsty19.2 KiBlog_fdw_16-1.4-1PIGSTY.el8.aarch64.rpm
log_fdw_161.4el9.x86_64pigsty20.2 KiBlog_fdw_16-1.4-2PIGSTY.el9.x86_64.rpm
log_fdw_161.4el9.x86_64pigsty19.6 KiBlog_fdw_16-1.4-1PIGSTY.el9.x86_64.rpm
log_fdw_161.4el9.aarch64pigsty20.2 KiBlog_fdw_16-1.4-2PIGSTY.el9.aarch64.rpm
log_fdw_161.4el9.aarch64pigsty19.4 KiBlog_fdw_16-1.4-1PIGSTY.el9.aarch64.rpm
log_fdw_161.4el10.x86_64pigsty20.3 KiBlog_fdw_16-1.4-2PIGSTY.el10.x86_64.rpm
log_fdw_161.4el10.x86_64pigsty19.8 KiBlog_fdw_16-1.4-1PIGSTY.el10.x86_64.rpm
log_fdw_161.4el10.aarch64pigsty20.3 KiBlog_fdw_16-1.4-2PIGSTY.el10.aarch64.rpm
postgresql-16-log-fdw1.4d12.x86_64pigsty27.5 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~bookworm_amd64.deb
postgresql-16-log-fdw1.4d12.aarch64pigsty27.0 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~bookworm_arm64.deb
postgresql-16-log-fdw1.4d13.x86_64pigsty27.6 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~trixie_amd64.deb
postgresql-16-log-fdw1.4d13.aarch64pigsty27.1 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~trixie_arm64.deb
postgresql-16-log-fdw1.4u22.x86_64pigsty34.4 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~jammy_amd64.deb
postgresql-16-log-fdw1.4u22.aarch64pigsty34.1 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~jammy_arm64.deb
postgresql-16-log-fdw1.4u24.x86_64pigsty28.4 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~noble_amd64.deb
postgresql-16-log-fdw1.4u24.aarch64pigsty28.1 KiBpostgresql-16-log-fdw_1.4-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
log_fdw_151.4el8.x86_64pigsty20.1 KiBlog_fdw_15-1.4-2PIGSTY.el8.x86_64.rpm
log_fdw_151.4el8.x86_64pigsty19.4 KiBlog_fdw_15-1.4-1PIGSTY.el8.x86_64.rpm
log_fdw_151.4el8.aarch64pigsty20.1 KiBlog_fdw_15-1.4-2PIGSTY.el8.aarch64.rpm
log_fdw_151.4el8.aarch64pigsty19.2 KiBlog_fdw_15-1.4-1PIGSTY.el8.aarch64.rpm
log_fdw_151.4el9.x86_64pigsty20.2 KiBlog_fdw_15-1.4-2PIGSTY.el9.x86_64.rpm
log_fdw_151.4el9.x86_64pigsty19.9 KiBlog_fdw_15-1.4-1PIGSTY.el9.x86_64.rpm
log_fdw_151.4el9.aarch64pigsty20.1 KiBlog_fdw_15-1.4-2PIGSTY.el9.aarch64.rpm
log_fdw_151.4el9.aarch64pigsty19.4 KiBlog_fdw_15-1.4-1PIGSTY.el9.aarch64.rpm
log_fdw_151.4el10.x86_64pigsty20.3 KiBlog_fdw_15-1.4-2PIGSTY.el10.x86_64.rpm
log_fdw_151.4el10.x86_64pigsty19.8 KiBlog_fdw_15-1.4-1PIGSTY.el10.x86_64.rpm
log_fdw_151.4el10.aarch64pigsty20.3 KiBlog_fdw_15-1.4-2PIGSTY.el10.aarch64.rpm
postgresql-15-log-fdw1.4d12.x86_64pigsty27.6 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~bookworm_amd64.deb
postgresql-15-log-fdw1.4d12.aarch64pigsty27.1 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~bookworm_arm64.deb
postgresql-15-log-fdw1.4d13.x86_64pigsty27.6 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~trixie_amd64.deb
postgresql-15-log-fdw1.4d13.aarch64pigsty27.2 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~trixie_arm64.deb
postgresql-15-log-fdw1.4u22.x86_64pigsty34.2 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~jammy_amd64.deb
postgresql-15-log-fdw1.4u22.aarch64pigsty34.0 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~jammy_arm64.deb
postgresql-15-log-fdw1.4u24.x86_64pigsty28.5 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~noble_amd64.deb
postgresql-15-log-fdw1.4u24.aarch64pigsty28.2 KiBpostgresql-15-log-fdw_1.4-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
log_fdw_141.4el8.x86_64pigsty20.1 KiBlog_fdw_14-1.4-2PIGSTY.el8.x86_64.rpm
log_fdw_141.4el8.x86_64pigsty19.4 KiBlog_fdw_14-1.4-1PIGSTY.el8.x86_64.rpm
log_fdw_141.4el8.aarch64pigsty20.1 KiBlog_fdw_14-1.4-2PIGSTY.el8.aarch64.rpm
log_fdw_141.4el8.aarch64pigsty19.2 KiBlog_fdw_14-1.4-1PIGSTY.el8.aarch64.rpm
log_fdw_141.4el9.x86_64pigsty20.2 KiBlog_fdw_14-1.4-2PIGSTY.el9.x86_64.rpm
log_fdw_141.4el9.x86_64pigsty19.7 KiBlog_fdw_14-1.4-1PIGSTY.el9.x86_64.rpm
log_fdw_141.4el9.aarch64pigsty20.1 KiBlog_fdw_14-1.4-2PIGSTY.el9.aarch64.rpm
log_fdw_141.4el9.aarch64pigsty19.4 KiBlog_fdw_14-1.4-1PIGSTY.el9.aarch64.rpm
log_fdw_141.4el10.x86_64pigsty20.3 KiBlog_fdw_14-1.4-2PIGSTY.el10.x86_64.rpm
log_fdw_141.4el10.x86_64pigsty19.8 KiBlog_fdw_14-1.4-1PIGSTY.el10.x86_64.rpm
log_fdw_141.4el10.aarch64pigsty20.3 KiBlog_fdw_14-1.4-2PIGSTY.el10.aarch64.rpm
postgresql-14-log-fdw1.4d12.x86_64pigsty27.5 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~bookworm_amd64.deb
postgresql-14-log-fdw1.4d12.aarch64pigsty27.1 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~bookworm_arm64.deb
postgresql-14-log-fdw1.4d13.x86_64pigsty27.5 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~trixie_amd64.deb
postgresql-14-log-fdw1.4d13.aarch64pigsty27.1 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~trixie_arm64.deb
postgresql-14-log-fdw1.4u22.x86_64pigsty34.2 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~jammy_amd64.deb
postgresql-14-log-fdw1.4u22.aarch64pigsty34.0 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~jammy_arm64.deb
postgresql-14-log-fdw1.4u24.x86_64pigsty28.4 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~noble_amd64.deb
postgresql-14-log-fdw1.4u24.aarch64pigsty28.1 KiBpostgresql-14-log-fdw_1.4-1PIGSTY~noble_arm64.deb

Source

pig build pkg log_fdw;		# build deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install log_fdw;		# install via package name, for the active PG version

pig install log_fdw -v 18;   # install for PG 18
pig install log_fdw -v 17;   # install for PG 17
pig install log_fdw -v 16;   # install for PG 16
pig install log_fdw -v 15;   # install for PG 15
pig install log_fdw -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION log_fdw;

Usage

log_fdw: Foreign data wrapper for Postgres log file access

Create Server

CREATE EXTENSION log_fdw;

CREATE SERVER log_fdw_server FOREIGN DATA WRAPPER log_fdw;

List Available Log Files

SELECT * FROM list_postgres_log_files();

Returns the file name and size of each log file in the PostgreSQL log directory.

Create Foreign Table for CSV Logs

SELECT * FROM create_foreign_table_for_log_file(
  'postgresql_2024_01_15_csv',   -- foreign table name
  'log_fdw_server',               -- server name
  'postgresql-2024-01-15.csv'     -- log file name
);

Create Foreign Table for Plain Text Logs

SELECT * FROM create_foreign_table_for_log_file(
  'postgresql_2024_01_15_log',
  'log_fdw_server',
  'postgresql-2024-01-15.log'
);

Query Log Data

-- Query CSV-format logs (structured columns)
SELECT log_time, error_severity, message
FROM postgresql_2024_01_15_csv
WHERE error_severity = 'ERROR'
ORDER BY log_time DESC
LIMIT 20;

-- Query plain text logs
SELECT * FROM postgresql_2024_01_15_log LIMIT 10;

Granting Access to Non-Superusers

Only superusers can create the extension, but access can be granted:

GRANT pg_monitor TO monitoring_user;
GRANT CREATE ON SCHEMA public TO monitoring_user;
GRANT USAGE ON FOREIGN SERVER log_fdw_server TO monitoring_user;

Functions Reference

FunctionDescription
list_postgres_log_files()List available log files and their sizes
create_foreign_table_for_log_file(table_name, server_name, file_name)Create a foreign table from a log file
Last updated on