计算机二级考试C语言辅导:log4cxx输出到界面

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在考试大论坛 考试大在线题库
  其实做起来比较简单,不过因为log4cxx的例子比较烦琐,所以费了一点时间
  这是头部,定义了一个appender
  #pragma once
  #include
  #include
  using namespace log4cxx;
  class GuiLogAppender : public AppenderSkeleton
  {
  public:
  DECLARE_LOG4CXX_OBJECT(GuiLogAppender)
  BEGIN_LOG4CXX_CAST_MAP()
  LOG4CXX_CAST_ENTRY(GuiLogAppender)
  LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
  END_LOG4CXX_CAST_MAP()
  GuiLogAppender()
  {
  textEdit=NULL;
  }
  GuiLogAppender(QPlainTextEdit *gui)
  {
  textEdit=gui;
  }
  bool requiresLayout() const
  { return true; }
  virtual void close() {}
  virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
  private:
  QPlainTextEdit *textEdit;
  };
  实现的部分很简单
  #include
  IMPLEMENT_LOG4CXX_OBJECT(GuiLogAppender)
  using namespace log4cxx::helpers;
  void GuiLogAppender::append(const spi::LoggingEventPtr& event, Pool& p)
  {
  LogString buf;
  //这个地方要小心,如果不想定义layout的话,就得自己搞。
  layout->format(buf, event, p);
  if(textEdit)
  {
  LOG4CXX_ENCODE_CHAR(str, buf);
  textEdit->appendPlainText(str.c_str());
  }
  }
  调用的时候就很方便。
  log4cxx::xml::DOMConfigurator::configure("log4cxx.xml");
  GuiLogAppender *appender=new GuiLogAppender(ui.plainTextEditMsg);
  appender->setLayout(new PatternLayout(LOG4CXX_STR("%-d{yyyy-MM-dd HH:mm:ss} %m")));
  Logger::getRootLogger()->addAppender(appender);
  就是这么简单,是不是很方便?

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答