我用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());