Você não mencionou sua versão do PostgreSQL, que é muito importante ao escrever respostas para perguntas como esta.
Se você estiver executando o PostgreSQL 9.0 ou mais recente (ou capaz de atualizar), poderá usar esta abordagem conforme documentado por Pavel:
http://okbob.blogspot.com /2009/10/dynamic-access-to-record-fields-in.html
Em geral, o que você quer é fazer referência a um campo nomeado dinamicamente em uma variável PL/PgSQL com tipo de registro como 'NEW' ou 'OLD'. Historicamente, isso tem sido irritantemente difícil e ainda é estranho, mas é pelo menos possível no 9.0.
Sua outra alternativa - que pode ser mais simples - é escrever seus gatilhos de auditoria em plperlu, onde as referências de campo dinâmicas são triviais.