There is still a problem: the analogy, that log/logf is similar
to write/writef, is not right anymore. Please correct me if I'm
wrong... but AFAIK write converts every argument to string and
the output device has no mean to choose a preferred
representation of the arguments.
It will be a surprise if I replace
log(a, b, c);
with
logf("%s%s%s", a, b, c);
and possibly get different results.