log4cpp: 无法将信息写入到文件里

bear234 2015-04-24 09:55:52
我在windows系统下用vs的时候,经常用log4cpp,很好用,一切正常,没遇到任何问题~~~

现在我在linux下工作了,编译环境是netbeans,编译器是gcc,用log4cpp的时候,碰到了一个问题:无法把消息写入到文件里~~~~

代码如下:

int main(int argc, char* argv[])
{
fstream logFile;
logFile.open("log", std::ios::app);
log4cpp::OstreamAppender* osAppender = new log4cpp::OstreamAppender("osAppender", &logFile);
//如果我用下面这行,那么消息可以成功显示在控制台上,但如果我用上面那行,不论我执行多少次这段程序,我的log文件永远是空的
//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“~~

原来没有log文件,执行一次这段代码后文件夹下有了一个空的log文件,这说明logFile.open()成功创建的文件,但是我不明白为什么信息就是写不进去呢???
...全文
249 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bear234 2015-04-27
  • 打赏
  • 举报
回复
引用 1 楼 focuslight 的回复:
初始化 有问题
我已经知道了,应该写:logFile.open("log", std::ios::app | ios::out); 我上面贴的代码在vs下可以运行,但在linux下不行,g++更严格
Isnis-fallen 2015-04-25
  • 打赏
  • 举报
回复
初始化 有问题

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧