首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

log4cxx有关问题:如何写不了日志

2012-01-19 
log4cxx问题:怎么写不了日志?我用apache的log4cxx库来写日志,但是很不稳定不知道为什么,经常只生成了日志

log4cxx问题:怎么写不了日志?
我用apache的log4cxx库来写日志,但是很不稳定不知道为什么,经常只生成了日志文件,但是什么日志都写不出来,今天又出现三个异常:
testlog.exe   中的   0x77e8bc81   处最可能的异常:   0x80004002:   不支持此接口   。
testlog.exe   中的   0x77e8bc81   处最可能的异常:   0x80004002:   不支持此接口   。
testlog.exe   中的   0x77e8bc81   处最可能的异常:   Microsoft   C++   exception:   log4cxx::helpers::ClassNotFoundException   @   0x0012e444   。
程序不崩溃,但是生成的log4j的日志文件是空,一句都没写进去,诡异死了。配置文件也没错啊。
<log4j:configuration   xmlns:log4j= "http://jakarta.apache.org/log4j/ ">

  <appender   name= "NULL "   class= "org.apache.log4j.performance.NullAppender ">
    <layout   class= "org.apache.log4j.SimpleLayout "/>
  </appender>

  <appender   name= "log "   class= "org.jboss.logging.appender.DailyRollingFileAppender ">
    <errorHandler   class= "org.jboss.logging.util.OnlyOnceErrorHandler "   />
  <param   name= "File "   value= "log/test3.log "   />
  <param   name= "Append "   value= "false "   />
  <param   name= "DatePattern "   value= " '. 'yyyy-MM-dd "   />
  <param   name= "MaxFileSize "   value= "1024KB "   />
    <param   name= "MaxBackupIndex "   value= "10 "   />  
  <layout   class= "org.apache.log4j.PatternLayout ">
    <param   name= "ConversionPattern "   value= "%d   %%%c-%p[%t]   %m%n "   />
  </layout>
  </appender>
 
  <category   name= "MC "   additivity= "true ">
  <priority   value= "DEBUG "/>
  </category>
 
  <root>
    <priority   value= "DEBUG "   />
    <appender-ref   ref= "log "   />
  </root>
 
</log4j:configuration>


调用
log4cxx::xml::DOMConfigurator::configure(cfgFile.c_str());
...
LoggerPtr   logger   =   Logger::getLogger( "MC ");
...
LOG4CXX_DEBUG(logger,   log.c_str());

[解决办法]
关注
[解决办法]
不支持中文,
在fileappender.cpp的
void FileAppender::setFile(const String& fileName, bool append,
bool bufferedIO, int bufferSize)函数中

ofs.open(T2A(fileName.c_str()), (append ? std::ios::app :
std::ios::trunc)|std::ios::out);

ofs.imbue( std::locale( "chs ") ); //使能输出中文;

热点排行