On Thu, Apr 9, 2009 at 12:03 PM, Curt Arnold <carn...@apache.org> wrote:

> Try using forward slashes in the file name.  If that doesn't work, start
> with a file no directory specification.  log4cxx uses APR which provides a
> consistent API above the filesystem including trying to provide a consistent
> file specification format (as does Java) and takes forward slashes on all
> platforms.
>
> If you are using the property configuration, backslashes are escape
> sequences and will get mangled (double backslashes should work fine).
>  Wouldn't think it would affect you if you were using XML configuration.
>
> The file open is in src/fileoutputstream.cpp around line 54.


I tried to debug into it, but did not hit the breakpoint into
src/fileoutputstream.cpp

This is my call stack:  (failed in GetFileAttributesExW, because the file
does not exist ...)

>    pslog.dll!apr_winapi_GetFileAttributesExW(const unsigned short *
lpFileName=0x001286e8, _GET_FILEEX_INFO_LEVELS
fInfoLevelId=GetFileExInfoStandard, void * lpFileInformation=0x00128494)
Line 204 + 0x3a bytes    C
     pslog.dll!apr_stat(apr_finfo_t * finfo=0x0012c760, const char *
fname=0x0188c500, int wanted=256, apr_pool_t * pool=0x0188c040)  Line 496 +
0x15 bytes    C
     pslog.dll!log4cxx::File::length(log4cxx::helpers::Pool & pool={...})
Line 171 + 0x24 bytes    C++

 
pslog.dll!log4cxx::rolling::RollingFileAppenderSkeleton::activateOptions(log4cxx::helpers::Pool
& p={...})  Line 106 + 0xc bytes    C++

 pslog.dll!log4cxx::RollingFileAppender::activateOptions(log4cxx::helpers::Pool
& pool={...})  Line 153    C++

 pslog.dll!log4cxx::config::PropertySetter::activate(log4cxx::helpers::Pool
& p={...})  Line 102 + 0x37 bytes    C++

 pslog.dll!log4cxx::xml::DOMConfigurator::parseAppender(log4cxx::helpers::Pool
& p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * appenderElement=0x01891a40, apr_xml_doc *
doc=0x01891100,
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 264    C++

 
pslog.dll!log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool
& p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * element=0x01891a40, apr_xml_doc *
doc=0x01891100, const
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> & appenderName="MyRollingAppenderSize",
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 131 + 0x23 bytes    C++

 
pslog.dll!log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool
& p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * element=0x01891918, apr_xml_doc *
doc=0x01891100, const
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> & appenderName="MyRollingAppenderSize",
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 135 + 0x2a bytes    C++

 
pslog.dll!log4cxx::xml::DOMConfigurator::findAppenderByReference(log4cxx::helpers::Pool
& p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * appenderRef=0x0188c438, apr_xml_doc *
doc=0x01891100,
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 159 + 0x29 bytes    C++

 
pslog.dll!log4cxx::xml::DOMConfigurator::parseChildrenOfLoggerElement(log4cxx::helpers::Pool
& p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * loggerElement=0x0188c330,
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> logger={...}, bool
isRoot=true, apr_xml_doc * doc=0x01891100,
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 463 + 0x20 bytes    C++

 pslog.dll!log4cxx::xml::DOMConfigurator::parseRoot(log4cxx::helpers::Pool &
p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * rootElement=0x0188c330, apr_xml_doc *
doc=0x01891100,
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 436    C++
     pslog.dll!log4cxx::xml::DOMConfigurator::parse(log4cxx::helpers::Pool &
p={...}, log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder> &
utf8Decoder={...}, apr_xml_elem * element=0x01891918, apr_xml_doc *
doc=0x01891100,
std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,log4cxx::helpers::ObjectPtrT<log4cxx::Appender>,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>
>,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const ,log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > > &
appenders=[0]())  Line 938    C++
     pslog.dll!log4cxx::xml::DOMConfigurator::doConfigure(const
log4cxx::File & filename={...},
log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository> &
repository1={...})  Line 742    C++
     pslog.dll!log4cxx::xml::DOMConfigurator::configure(const
std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> & filename="d:\SVN\projectwise\ncpe\bin\tf.log.xml")  Line 756 + 0x64
bytes    C++


>
>
>
> On Apr 8, 2009, at 10:30 PM, Lijuan Zhu wrote:
>
>  I am new to log4cxx, and just got it set up into my application. I
>> configured a xml file for the logging, but the log file like c:\temp.log
>> could not be created by the log4cxx. I am sure my app has the privelegesto
>> create file.
>> I would like to debug the source code, would someone please point me to
>> the source code?
>>
>> Thanks,
>> Lijuan
>>
>
>

Reply via email to