Logical decoding was only recently added in Postgres (9.4)? I'm not sure on the privileges required for logical decoding in postgres, but typically it requires 'root' access because it lets you see all the data in the system. So triggers can often be used on a shared database, where you might not be allowed to access the transaction log.
I would love to see a pull request for the "proper way." Thank you for your help.