读书人

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

发布时间: 2012-01-19 00:22:28 作者: rapoo

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 ") ); //使能输出中文;

读书人网 >VC/MFC

热点推荐