私が取り組んでいるプロジェクトのログ ファイル システムに少し機能を追加したいと考えています。私のLogError()
呼び出しには、エラーが発生した関数を含めたいと思います。呼び出した関数の名前にアクセスして、LogError()
プログラムでその情報にアクセスしてログに追加できる方法があるかどうか疑問に思っています。
例えば:
bool Engine::GraphicsManager::Initialize(const HWND i_hWindow_main)
{
if ( !InitializeWindow( i_hWindow_main ) )
{
Engine::LogManager::Instance().LogError(L"GraphicsManager::Initialize - Unable to initialize graphics window");
return false;
}
Engine::LogManager::Instance().LogMessage(L"Graphics window initialized successfully");
/* SNIP */
initialized = true;
return true;
}
上記の例では、手動でどこにでもそれを配置するのではなく、その関数の名前 (少なくとも一部)LogError()
から呼び出されたことを判断して出力できるようにしたいと考えています。GraphicsManager::Initialize()
EDIT:私のLogError()
関数(および他のロギング関数)は基本的にラッパーでvfwprintf_s()
あるため、可変長の引数リストを取得できることに言及する必要がありました。「マクロを使用する」という提案は気に入っていますが、その潜在的な問題に対処する方法がわかりません (これはおそらく別の質問です)。
これはまだ合理的/可能ですか?
ありがとう!