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

Ralph Goers commented on LOG4J2-3018:
-------------------------------------

My recommendation would be to remove the date from all the filename attributes 
on all the RollingFileAppenders.  So you would have


{code:java}
<RollingFile name="Rolling-${ctx:ServiceName}" 
fileName="${LOG_PATH}/RequestMgr.log" 
filePattern="${LOG_PATH}/RequestMgr_%d{yyyy-MM-dd}.log.gz">
  <LevelRangeFilter minLevel="INFO" maxLevel="DEBUG" onMatch="ACCEPT" 
onMismatch="DENY" />
  <PatternLayout pattern="${LOG_PATTERN}" />
  <Policies>
    <TimeBasedTriggeringPolicy interval="1" modulate="true" />
  </Policies>
</RollingFile>
{code}
The FileRenameAction is going to first try to move the file from the source 
file (the file in the filename attribute) to the target file (the file in the 
filepattern attribute - without the trailing .gz, .zip, etc). If that fails it 
will then try to copy the source file to the target file (again without the 
.gz, .zip, etc). If the copy succeeds the source file will be deleted. A new 
file to log to will then be created and control will be given back to the 
application. Asynchronously, the moved or copied file will be compressed to the 
target compression type into the new filename and the source for the 
compression will be deleted.

The problem here is that the source file and target file have the same name in 
the move and copy operations so they are going to fail. You should be seeing 
errors like "Unable to copy file..." wherever System.out is directed for your 
application.

> Rollover log file at midnight not working
> -----------------------------------------
>
>                 Key: LOG4J2-3018
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3018
>             Project: Log4j 2
>          Issue Type: Bug
>            Reporter: Rambabu Bikumandla
>            Priority: Blocker
>              Labels: log4j2.xml, routing
>         Attachments: log4j2.xml, log4j2.xml
>
>
> Hi Team,
> I am migrating my project from log4j1.x to log4j2.11.2 version, while 
> migration am seeing below issue could you please provide solution on it.
> *Log4j2 version :* 
> *log4j-slf4j-impl-2.11.2*
>  *log4j-1.2-api-2.11.2*
>  *log4j-1.2-core-2.11.2*
> Issue: log files are not roll out every day midnight with new file name, it 
> still writing it to old logs for some hours then switching to new logs.
> Below my log4j2.xml config.
> <Routing name="DEBUG">
>  <Routes pattern="$${ctx:ServiceName}">
>  <Route key="ConsuerManager">
>  <RollingFile name="Rolling-${ctx:ServiceName}" 
>  {color:#ff0000}*fileName="/app/log/Consumer_${date:yyyy-MM-dd}.log*{color}" 
>  *{color:#ff0000}filePattern="/app/log/Consumer_%d\{yyyy-MM-dd}.log{color}*" 
> append="true">
>  <LevelRangeFilter minLevel="INFO" maxLevel="DEBUG" onMatch="ACCEPT" 
> onMismatch="DENY" />
>  <PatternLayout pattern="${LOG_PATTERN}" />
>  <Policies> 
>  <TimeBasedTriggeringPo licy interval="1" modulate="true" />
>  </Policies>
>  </RollingFile>
>  </Route>
>  <Route key="AppProvider">
>  <RollingFile name="Rolling-${ctx:ServiceName}" 
>  fileName="/app/log/Provider_${date:yyyy-MM-dd}.log"
>  filePattern="/app/log/Provider_%d\{yyyy-MM-dd}.log" append="true">
>  <LevelRangeFilter minLevel="INFO" maxLevel="DEBUG" onMatch="ACCEPT" 
> onMismatch="DENY" />
>  <PatternLayout pattern="${LOG_PATTERN}" />
>  <Policies>
>  <TimeBasedTriggeringPolicy interval="1" modulate="true" />
>  </Policies></RollingFile></Route>
>  </Routes>
>  </Routing>
> *Sample Logs: consumer_2021-02-08.log - It should contain only Feb-08 but we 
> are seeing Feb-09 also*
> [Feb/08/21 18:18:37] INFO com.app.apptest.Database.DbRequest - approval 
> status of the myno: 125478412 Is ::W
>  [Feb/08/21 18:18:37] INFO 
> com.myapp.servicecore.ejb.monitor.AppTestsEJBMonitor 
>  [Feb/08/21 18:18:37] INFO 
> com.myapp.servicecore.ejb.monitor.AppTestsEJBMonitor 
>  [Feb/08/21 18:18:37] INFO com.bi.myapp.consumer.utils.ConsumerHelper - 
> conditional status for the myno ::4857154 is :: false
>  [Feb/08/21 18:18:37] INFO com.app.apptest.Database.Database - Database 
> initialized
>  [Feb/08/21 18:18:37] INFO com.app.apptest.MyManagement.Database - Database 
> initialized
>  [Feb/08/21 18:18:38] INFO com.app.apptest.Database.DbTtion - mynoId :123456 
> mynoID :45678 
>  [Feb/08/21 18:18:38] INFO com.bi.persistent.process.DBProcess - db is 
> ::org.apache.db.oracle.DBCommandOracle@516c36a0
>  [Feb/08/21 18:18:38] INFO com.bi.persistent.process.DBProcess - db is 
> ::org.apache.db.oracle.DBCommandOracle@4ee951e2
>  [{color:#FF0000}Feb/08/21 18:18:38{color}] INFO 
> com.bi.myapp.restclients.CircuitImpactClient - constructor: Using environment 
> Test to get URL info
>  ..
>  ..
>  {color:#FF0000}[Feb/09/21 12:37:43{color}] INFO com.bi.myapp.util.Client - 
> connectToId: Trying to connect to mail server; 
>  [Feb/09/21 12:37:44] INFO com.bi.myapp.util.Client - connectToId: 
> Successfully connected to .
>  [Feb/09/21 12:37:45] INFO com.bi.myapp.util.Client - readMails: There are 0 
> messages to be processed
>  [Feb/09/21 12:37:45] INFO com.bi.myapp.util.Client - readMails: Number of 
> unread messages still in the
>  [Feb/09/21 12:37:45] INFO 
> com.myapp.servicecore.ejb.monitor.AppTestsEJBMonitor - updateLock invoked at 
> 12:37:45 PM GMT took 3 milliseconds to execute.
>  [Feb/09/21 12:37:45] INFO com.bi.myapp.scheduler.EmailReaderScheduler - 
>  ~
>  "consumer_2021-02-08.log" [readonly] 6327556L, 273633483C



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

Reply via email to