Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-2535

MongoDB3 configuration requires databaseName when using connectionFactory

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.11.1
    • None
    • Appenders, MongoDB
    • None

    Description

      When creating a configuration for MongoDB3, using a connection factory , it still requires to provide a database name as an argument

      log4j2.xml configuration file

       

      <NoSql name="databaseAppender">
      <MongoDb3 collectionName="applicationLog" factoryClassName="logger.ConnectionFactory"
      factoryMethodName="getNewMongoClient" />
      </NoSql>

       

      Error while running

      2019-01-20 21:37:20,355 main ERROR Could not create plugin of type class org.apache.logging.log4j.mongodb3.MongoDbProvider for element MongoDb3 org.apache.logging.log4j.core.config.ConfigurationException: Arguments given for element MongoDb3 are invalid: field 'databaseName' has invalid value 'null'
      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectFields(PluginBuilder.java:209)
      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)

       

      Per the documentation , it makes is sound is optional and not required.

      By looking at the log4j2 code, it seems the argument is tagged with @Required Annotation

       

      org.apache.logging.log4j.mongodb3.MongoDbProvider

      @PluginBuilderAttribute
      @Required(message = "No database name provided")
      private String databaseName;

      Attachments

        Activity

          People

            Unassigned Unassigned
            dookie_loserr Alex Donate
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: