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

文章作者 100test 发表时间 2009:04:30 07:45:31
来源 100Test.Com百考试题网


  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年上半年全国计算机等级考试试题答案汇总



相关文章


二级考试C语言辅导:C语言计算奖金发放实例计算机二级考试
二级考试C语言辅导:远程运行程序的一种方法计算机二级考试
C语言辅导:面向短连接的网络服务器计算机二级考试
计算机二级考试C语言辅导:log4cxx输出到界面计算机二级考试
计算机二级考试C语言辅导:进程模块查看计算机二级考试
C语言开发实现的虚拟桌面程序代码计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛