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

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

This seems to be a cross-platform thing; I've tested on Linux, and the same 
problem occurs(repo: https://github.com/rm5248/log4cxx-513).

 

My best guess is that for some reason we are not attempting to create the new 
directory when we do the rollover.  However, now I'm confused as to how exactly 
log4cxx is configured, and what you want to do.  It looks like what you're 
trying to do is to have different hours in different folders - if you could 
show a directory tree of what you're trying to achieve, that would be helpful.

 

Here's a (possible) workaround for you:

 
{code:java}
    log4cxx::DailyRollingFileAppenderPtr debugRollingFileAppender1(new 
log4cxx::DailyRollingFileAppender()); //Create the date pattern in the folder 
structure.
    debugRollingFileAppender1->setFile( "/tmp/log4cxxtest/current.log" );
    debugRollingFileAppender1->setDatePattern( ".HH" );
{code}
 

This should rename the file current.log to current.log.12(for example) when the 
hour rolls over.

 

> 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: 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