You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Nick Kom (Jira)" <ji...@apache.org> on 2022/01/18 17:41:00 UTC
[jira] [Updated] (LOG4J2-3346) After 2.17.0 upgarde Route appenders with dynamic file writing are not working
[ https://issues.apache.org/jira/browse/LOG4J2-3346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Kom updated LOG4J2-3346:
-----------------------------
Description:
We switched from the version 2.11.1 to 2.17.0 and writing to separate files stopped working. Configuration log4j:
{code:xml}
<Appenders>
...
<Routing name="routing">
<Routes pattern="$${ctx:V_PID}">
<Route>
<RollingFile name="rolling-${ctx:V_PID}" fileName="${logPath}/task-${ctx:V_PID}.log"
filePattern="${logArchPath}/task-${ctx:V_PID}-${archFile}" ignoreExceptions="false">
<PatternLayout pattern="${pattern}"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</RollingFile>
</Route>
</Routes>
<IdlePurgePolicy timeToLive="2" timeUnit="minutes"/>
</Routing>
...
</Appenders>
<Loggers>
<Logger name="com.rou.let" level="trace">
<AppenderRef ref="routing"/>
</Logger>
</Loggers>{code}
In code we use Slf4J logger (org.slf4j.Logger) and org.apache.logging.log4j.ThreadContext :
{code:java}
ThreadContext.put("V_PID", pid);
org.slf4j.Logger logger =org.slf4j.LoggerFactory.getLogger(MessageFormat.format(...));
{code}
maven dependencies in pom.xml:
{code:xml}
....
<slf4j.version>1.7.7</slf4j.version>
<log4j2.version>2.17.0</log4j2.version>
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
...
{code}
We use this in our web application which is deployed on Weblogic 12.2.1.0.0
What can be wrong? Why aren't separate files (task-${ctx:V_PID}.log) created in the folder \{logPath}?
Before library version 2.12.2 (inclusive),it's worked!
Environment: (was: We switched from the version 2.11.1 to 2.17.0 and writing to separate files stopped working. Configuration log4j:
{code:xml}
<Appenders>
...
<Routing name="routing">
<Routes pattern="$${ctx:V_PID}">
<Route>
<RollingFile name="rolling-${ctx:V_PID}" fileName="${logPath}/task-${ctx:V_PID}.log"
filePattern="${logArchPath}/task-${ctx:V_PID}-${archFile}" ignoreExceptions="false">
<PatternLayout pattern="${pattern}"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</RollingFile>
</Route>
</Routes>
<IdlePurgePolicy timeToLive="2" timeUnit="minutes"/>
</Routing>
...
</Appenders>
<Loggers>
<Logger name="com.rou.let" level="trace">
<AppenderRef ref="routing"/>
</Logger>
</Loggers>{code}
In code we use Slf4J logger (org.slf4j.Logger) and org.apache.logging.log4j.ThreadContext :
{code:java}
ThreadContext.put("V_PID", pid);
org.slf4j.Logger logger =org.slf4j.LoggerFactory.getLogger(MessageFormat.format(...));
{code}
maven dependencies in pom.xml:
{code:xml}
....
<slf4j.version>1.7.7</slf4j.version>
<log4j2.version>2.17.0</log4j2.version>
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
...
{code}
We use this in our web application which is deployed on Weblogic 12.2.1.0.0
What can be wrong? Why aren't separate files (task-${ctx:V_PID}.log) created in the folder \{logPath}?
Before library version 2.12.2 (inclusive),it's worked!)
> After 2.17.0 upgarde Route appenders with dynamic file writing are not working
> -------------------------------------------------------------------------------
>
> Key: LOG4J2-3346
> URL: https://issues.apache.org/jira/browse/LOG4J2-3346
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.17.0
> Reporter: Nick Kom
> Priority: Major
>
> We switched from the version 2.11.1 to 2.17.0 and writing to separate files stopped working. Configuration log4j:
> {code:xml}
> <Appenders>
> ...
> <Routing name="routing">
> <Routes pattern="$${ctx:V_PID}">
> <Route>
> <RollingFile name="rolling-${ctx:V_PID}" fileName="${logPath}/task-${ctx:V_PID}.log"
> filePattern="${logArchPath}/task-${ctx:V_PID}-${archFile}" ignoreExceptions="false">
> <PatternLayout pattern="${pattern}"/>
> <SizeBasedTriggeringPolicy size="10 MB"/>
> </RollingFile>
> </Route>
> </Routes>
> <IdlePurgePolicy timeToLive="2" timeUnit="minutes"/>
> </Routing>
> ...
> </Appenders>
> <Loggers>
> <Logger name="com.rou.let" level="trace">
> <AppenderRef ref="routing"/>
> </Logger>
> </Loggers>{code}
> In code we use Slf4J logger (org.slf4j.Logger) and org.apache.logging.log4j.ThreadContext :
> {code:java}
> ThreadContext.put("V_PID", pid);
> org.slf4j.Logger logger =org.slf4j.LoggerFactory.getLogger(MessageFormat.format(...));
> {code}
> maven dependencies in pom.xml:
> {code:xml}
> ....
> <slf4j.version>1.7.7</slf4j.version>
> <log4j2.version>2.17.0</log4j2.version>
> ...
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-api</artifactId>
> <version>${slf4j.version}</version>
> </dependency>
> <dependency>
> <groupId>org.apache.logging.log4j</groupId>
> <artifactId>log4j-slf4j-impl</artifactId>
> <version>${log4j2.version}</version>
> </dependency>
> <dependency>
> <groupId>org.apache.logging.log4j</groupId>
> <artifactId>log4j-api</artifactId>
> <version>${log4j2.version}</version>
> </dependency>
> <dependency>
> <groupId>org.apache.logging.log4j</groupId>
> <artifactId>log4j-core</artifactId>
> <version>${log4j2.version}</version>
> </dependency>
> ...
> {code}
> We use this in our web application which is deployed on Weblogic 12.2.1.0.0
> What can be wrong? Why aren't separate files (task-${ctx:V_PID}.log) created in the folder \{logPath}?
> Before library version 2.12.2 (inclusive),it's worked!
--
This message was sent by Atlassian Jira
(v8.20.1#820001)