You can profile the Perl side with Devel::NYTProf (database access should show up as subroutine execute or st::execute or so), and also log execution time of the statements at DB level, then compare your findings. If the Perl side takes much longer than what posgres logs, you know it's DBI or DBD::Pg.
How many log entries are written typically? is the IO load high on the server? Are you caching DB connections? (reconnecting to the DB for each log event would be rather slow; doing a single insert should not be very slow).