Linux で cpp を使用していますが、log4cpp を使用したいと考えています。
vs2013のWindowsで使用しようとしましたが、非常にうまく機能しました。今、私は Linux で作業していますが、問題が発生しました:
ファイルで動作しません。ここに私のテストコードがあります:
int main(int argc, char* argv[])
{
fstream logFile;
logFile.open("log", std::ios::app);
log4cpp::OstreamAppender* osAppender = new log4cpp::OstreamAppender("osAppender", &logFile);
// I tried cout as below and it worked, but if I tried as above with a file, it didn't work anymore.
// I mean the "log" file could be created but the message can't be written down in the file. The file is always empty.
//log4cpp::OstreamAppender* osAppender = new log4cpp::OstreamAppender("osAppender", &cout);
osAppender->setLayout(new log4cpp::BasicLayout());
log4cpp::Category& root = log4cpp::Category::getRoot();
root.addAppender(osAppender);
root.setPriority(log4cpp::Priority::DEBUG);
root.error("Hello log4cpp in aError Message!");
root.warn("Hello log4cpp in aWarning Message!");
log4cpp::Category::shutdown();
cout<<"test";
return 0;
}
このテストコードを何度も実行しましたが、コンソールに「test」と表示されているため、エラーは発生せず、プログラムは正常に終了しました。しかし、ファイルは常に空です。
ちなみにsudo chmod +777 log
出来ました。したがって、許可の問題ではありません。