pgLOGd logs Apache access log entries to a PostgreSQL database.
pgLOGd was designed to be fast while providing the same experience as logging to a file. It features a simple and robust system that can recover from errors, network failures, and database problems when possible.
One of the most appealing aspects of pgLOGd is its robustness. If the connection to the database is lost for any reason, pgLOGd will start writing the log entries to a temporary overflow file (Fall-Back-Logging). pgLOGd will then try to re-establish the database connection every 30 seconds (configurable) until it restores the database connection. During idle moments, pgLOGd processes the overflow file entries to the database. The overflow file is also used when entries are coming in from the web server faster than they can be stored in the database.
pgLOGd is non-blocking, which makes it extremely responsive and fast. This feature optimizes the logging process by continuously processing entries from the web server without waiting for anything to finish. pgLOGd will merely ask the database to store an entry and then come back later to check if it was successful. The non-blocking functionality of pgLOGd is one of the reasons why PostgreSQL was chosen. The C interface provided by PostgreSQL offers excellent asynchronous connection and query processing.
pgLOGd runs as a single daemon process and typically uses less than 128K of memory. It is highly configurable and independent of both the system and web server used.
To use pgLOGd, you need a PostgreSQL database installation, a web server capable of writing its log entries to a file, and a customizable log entry format. Apache is highly recommended as the preferred web server, while a C compiler such as the GNU gcc compiler is needed.
pgLOGd 2.2-beta is the latest and most stable release version. It features one new utility (pglogctl), and feedback from users has been excellent. A rewriting of the site and version 3.0 are both planned for future releases.
Version 2.3: N/A