ロギング用の独自の単純なクラスを作成しました。ある種のライブラリ(boost.log、log4cpp?)を使用する方がよいことは理解していますが、とにかく私の単純なクラスについて説明しましょう。
#include "stdafx.h"
#include "Logger.h"
Logger::Logger(std::string fileName)
{
logFile.open(fileName);
}
Logger::~Logger(void)
{
logFile.close();
}
void Logger::Error(std::string message) {
logFile << message << std::endl;
}
void Logger::Debug(std::string message) {
logFile << message << std::endl;
}
- メソッドが可変数の引数を受け入れるようにしたいので、そのようなパラメーターを渡すことができます
"Error code: %x", code
。どうやってするか? - コンパイルシンボルが設定されていない
Debug
場合、メソッドを除外したい。LOG_DEBUG
C#では[Conditional("LOG_DEBUG")]
、メソッド宣言の前に追加できますが、C ++で追加するにはどうすればよいですか?
upd 1に関して私はそれを試しました、そしてそれは働きます:
void Logger::Debug(std::string message, ...) {
va_list arglist;
fprintf(pFile, message.c_str(), arglist);