[
https://issues.apache.org/jira/browse/LOG4J2-3018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17284094#comment-17284094
]
Ralph Goers commented on LOG4J2-3018:
-------------------------------------
Your comment in LOG4J2-1185 seems to indicate that you tried using the direct
write rollover strategy and it didn't work. But you say you don't see the
archived file. I don't understand because the "archived file" is what is being
written to. You showed
{code:java}
<Routing name="DEBUG">
<Routes pattern="$${ctx:ServiceName}">
<Route key="RequestManager">
<RollingFile name="Rolling-${ctx:ServiceName}"
filePattern="${LOG_PATH}/appTest_%d{yyyy-MM-dd}.log" >
<LevelRangeFilter minLevel="INFO" maxLevel="DEBUG" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout pattern="${LOG_PATTERN}" />
<Policies>
<CronTriggeringPolicy schedule="0 0 0 * * ?"
evaluateOnStartup="true"/>
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
{code}
This isn't going to work very well since the name of the appender is going to
actually be "Rolling-${ctx:ServiceName}". The name attribute is resolved when
the configuration is read. Since you most likely don't have ServiceName
globally defined the lookup will return null so Log4j will just leave the
string untouched. So if you have multiple routes with the same name they will
all conflict with each other.
Once Log4j starts it will start writing to the file named in the file pattern.
When the rollover occurs that file will be left in place and a new file will be
created with the new date and that file will become the active log file.
> 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)