[ 
https://issues.apache.org/jira/browse/LOGCXX-513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241138#comment-17241138
 ] 

Robert Middleton commented on LOGCXX-513:
-----------------------------------------

It looks like this is a a simple fix, things are essentially happening out of 
order.  From the quick look I had at the code, it seems that the FileAppender 
will create the intermediate directories when it is first created, but when the 
rollover happens this doesn't happen.  This would explain why it works at 
first, but never again(the stack trace was very helpful, thanks).  So by 
calling activateOptions(which as far as I can tell doesn't have any 
side-effects) the intermediate directories will be created.

 

Potential fix is on git(branch log4cxx-513), if you could test it out and see 
if it works for you: https://github.com/apache/logging-log4cxx/tree/log4cxx-513

> Time based rolling is not working on Windows 10
> -----------------------------------------------
>
>                 Key: LOGCXX-513
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-513
>             Project: Log4cxx
>          Issue Type: Bug
>          Components: Appender, Core
>    Affects Versions: 0.10.0
>         Environment: Windows 10, Visual studio 2019
>            Reporter: Somashekhar
>            Priority: Blocker
>         Attachments: Folder_Structure.png, Log4cxx_Test.log, 
> Log4cxx_error.png, Logfile.PML
>
>
> Hi,
> I am able to build log4cxx with following apr, apr-util and libexpat versions 
> using Visual Studio 2019 on Windows 10 for both 32 bit and 64 bit(Disabled 
> libiconv). apr-1.7.0, APR-util 1.6.1, log4cxx-0.10.0 and libexpat-R_2_2_10
> Tested these libraries with below code,
>  
> {{log4cxx::DailyRollingFileAppenderPtr debugRollingFileAppender1(new \
>         log4cxx::DailyRollingFileAppender());    //Create the date pattern in 
> the folder structure.std::string aDatePattern = 
> std::string("D:\\LogFolder\\Log4cxx_2019_Test\\") + "%Y%m%d\\%H\\" + "test" + 
> ".log";
>     LOG4CXX_DECODE_CHAR(aTempLogDatePattern, aDatePattern);
>     debugRollingFileAppender1->setDatePattern(aTempLogDatePattern);
>     log4cxx::helpers::Pool pool;    log4cxx::PatternLayoutPtr debugLayout(new 
> log4cxx::PatternLayout());
>     debugLayout->setConversionPattern(LOG4CXX_STR("%d   [%t]    %5p %m%n"));
>     debugRollingFileAppender1->setLayout(debugLayout);
>     debugRollingFileAppender1->activateOptions(pool);
>     LoggerPtr logger = Logger::getLogger(_T("LogInfo"));
>     logger->addAppender(debugRollingFileAppender1);
>     logger->setLevel(Level::getInfo());}}
>  
> While rolling over application is throwing exception "log4cxx: Exception 
> during rollover", and after debugging found that below call in file 
> "apr\file_io\win32\open.c" is failing to create the file. I thought it could 
> be permission issue, but first time on application launch it is able to 
> create file. It is failing only while rollover.
> handle = CreateFileA(fname, oflags, sharemode,
>  NULL, createflags, attributes, 0); 
>  
> Please let me know if you need more details.
> Thanks



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to