Valerio, after looking at your home node it's pretty clear that you would know how to use log4perl :) <kneels humbly>
I wonder how you moved forward on this problem? It would seem there are only two ways to go: either you're building a config on the fly and using the log4perl::init call, or you're letting log4perl parse through a config already made and working with the log4perl->value madness. :)
I wonder <outloud apparently> if slupring the 'l4p.conf' and munging it might really be your best option? I suspect that the variable substitution wouldn't be that tricky afterall... regards!
PS: I realise that you said *do not* want yet another home made parser
but here's one just incase anyone was interested (or incase you changed your mind :))