std::clogのリダイレクト機能を使ってログ取りをしようとしているのですが、main関数内で

 std::ofstream logfile("something.log");
 if(logfile) std::clog.rdbuf( logfile.rdbuf() );

 clog << いろいろ・・・

とすると一通り正常に実行された後なぜかプログラム終了時にクラッシュしてしまいます。
いろいろ調べたところlogfileがグローバル変数の時はクラッシュしないと分かりました。
logfileの生存期間ってもしかしてプログラム終了までないとダメなんですか・・・?
ちなみに環境はWindows上でminGW+STLportです。