我想在一个mfc对话框程序中使用logcxx 我加了log4cxx.lib 在InitInstance()中加了代码
log4cxx::xml::DOMConfigurator::configure(_T("log4cxxTest.xml"));
然后在dlgcpp.h中加了 static log4cxx::LoggerPtr logger;
在dlgcpp.cpp中加了 LoggerPtr CFtpBackUpDlg::logger = Logger::getRootLogger();
在一个函数中加了 logger->debug("test");
程序运行没问题 但我定义了 fileappender 可是没有输出到文件中 请问是怎么回事呢?
那个配置文件应该放在哪里?有没有具体使用的例子 不要console的例子 要mfc的例子
log4cxx::xml::DOMConfigurator::configure(_T("log4cxxTest.xml"));
然后在dlgcpp.h中加了 static log4cxx::LoggerPtr logger;
在dlgcpp.cpp中加了 LoggerPtr CFtpBackUpDlg::logger = Logger::getRootLogger();
在一个函数中加了 logger->debug("test");
程序运行没问题 但我定义了 fileappender 可是没有输出到文件中 请问是怎么回事呢?
那个配置文件应该放在哪里?有没有具体使用的例子 不要console的例子 要mfc的例子
LoggerPtr CFtpBackUpDlg::logger = Logger::getRootLogger();你需要在配置文件里面定义一个Appender其type是FileAppender
在AppendReference里面引用这个Appender,并且加一个name属性代码里面使用
LoggerPtr CFtpBackUpDlg::logger = Logger::getLogger("AppenderName");
AppenderName就是那个name属性
我取得root logger 不可以吗?
------
这样当然也是可以的
那么你的问题肯定是配置上的问题
你去官方网站看看文档吧
那个配置文件应该放在哪里?
------
可是使用绝对路径来加载配置文件
<!DOCTYPE log4j:configuration (View Source for full doctype...)>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" threshold="null" debug="null">
<appender name="TEMP" class="org.apache.log4j.FileAppender">
<param name="Append" value="true" />
<param name="File" value="temp" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{2} - %m\n" />
</layout>
</appender>
<root>
<level value="DEBUG" class="org.apache.log4j.xml.XLevel" />
<appender-ref ref="TEMP" />
</root>
</log4j:configuration>这是我的配置文件 我就是从官方例子上改的啊
应该是 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">