>>400付近の遠いレスだけど、おまえらそもそもデストラクタロギングが
どんなのかしってるのか。

class TRACE {
  TRACE(char *funcnamne, ...) { cout << log... <<endl; }
  ~TRACE() { cout << log.. <<endl; }
}

とかよういしといて、関数に下のように書くだけだぞ。tryもfinallyも
いらない。スコープぬけるときにデストラクタが呼ばれて、
かってにロギングしてくれるから。

void func {
  TRACE trace("func", ...);
  ...実体...
}