掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ログ出力について (ID:72951)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話にになります。 VC++ 6.0 で、自作のログ出力クラスを改善したいのですが、 困っていること(=質問したいこと)が2つあります。 まず現在は、 _tfopen, _fputts, fclose を使って、1つのファイル(固定ファイル名)にログを出力しています。 クラス化しているのですが、あちこちで利用するため、 Logger * Logger::GetInstance() { static Logger logger; return &logger; } のように、java でいうシングルトンパターン'のような'仕組みで、 ログ出力時にインスタンスを取得し、書き込みメソッドを呼ぶようにしています。 Logger * log = Logger::GetInstance(); log->error(ログ); log->debug(ログ); 1、EXEが2つ以上起動したときに、 対象のログファイルに同時に書き込まれるとファイルが 壊れてしまいます。 「ファイル ロック」などで検索しても、 利用するAPIを見つけることができませんでした。 複数のプロセスから、安全に操作する方法を教えてください。 2、出力するファイルに制限をつけ、サイズを超えたら log1.log log2.log log3.log log1.log <- もとのファイル名に戻る log2.log ・・・ のようにローテーションで出力したいと思っています。 ログ出力時に毎回ファイルサイズを取得することはできるのですが、 次に出力する先のファイルを特定する方法が思いつきません。 EXEが2つ以上起動している場合は、 さらに難しいのではないかと思います(汗) ※サイズと書きましたが、サイズが難しいようでしたら、 行数でも構いません(ログには改行コードが含まれていない前提です)。 宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.