Omer U created LOG4J2-3396:
------------------------------

             Summary: ERROR Recursive call to appender mongodb with spring boot 
root logger
                 Key: LOG4J2-3396
                 URL: https://issues.apache.org/jira/browse/LOG4J2-3396
             Project: Log4j 2
          Issue Type: Question
          Components: MongoDB
    Affects Versions: 2.17.1
            Reporter: Omer U


If mongodb4 logger is used as root logger in basic spring boot rest 
application, it causes some sort of recursion error. And stalls startup. 

 below causes recursive call error

{code:xml}
     <Root level="INFO">
      <AppenderRef ref="Console" />
      <AppenderRef ref="mongodb" />
    </Root> 
{code}

while following does not produce error
{code:xml}
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="Console" />
    </Root>
    <Logger name="com.example" level="TRACE">
      <AppenderRef ref="mongodb" >
    </Logger>
    <Logger name="io.grpc" level="INFO"/>
  </Loggers>
{code}


 
{noformat}
2022-02-07 23:35:43,487 cluster-ClusterId{value='620182632ff6a504abdb6699', 
description='null'}-localhost:27017 ERROR Recursive call to appender mongodb
23:36:13.481 [st:27017] INFO  o.m.d.cluster - Cluster description not yet 
available. Waiting for 30000 ms before timing out
2022-02-07 23:36:13,480 cluster-rtt-ClusterId{value='620182632ff6a504abdb6697', 
description='null'}-localhost:27017 ERROR Unable to write to database 
[noSqlManager{ description=mongodb, bufferSize=0, provider=MongoDb4Provider 
[connectionString=mongodb://localhost:27017/tombolog.mongo4test, 
collectionSize=1073741824, isCapped=true, 
mongoClient=com.mongodb.client.internal.MongoClientImpl@2f67a4d3, 
mongoDatabase=com.mongodb.client.internal.MongoDatabaseImpl@5e3f861] }] for 
appender [mongodb]. 
org.apache.logging.log4j.core.appender.AppenderLoggingException: Failed to 
write log event to MongoDB due to error: Timed out after 30000 ms while waiting 
to connect. Client view of cluster state is {type=UNKNOWN, 
servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING}]

{noformat}
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%.8t] %-5level %logger{1.} - 
%msg%n"/>
    </Console>
    <NoSql name="mongodb">
      <MongoDb4 capped="true" collectionSize="1073741824" 
connection="${env:MONGO_LOG_URI:-mongodb://localhost:27017/log.mongo4test}" />
    </NoSql>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="Console" />
      <AppenderRef ref="mongodb" />
    </Root>
    <Logger name="com.example" level="TRACE"/>
    <Logger name="io.grpc" level="INFO"/>
  </Loggers>
</Configuration>
{code}

is this normal behavior? I have tried to reproduce this without spring boot  
without any success. 

Any ideas?




--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to