Hello Julian, When I created the version 4 of the MongoDB appender, I realized that for all the use cases I had and I felt were reasonable, I could use a connection string, a bit like you can in JDBC, which I could not do with a version 3 driver. There are two settings IIRC that I did not find mappings in a version 4 connection string: capped and collection size.
Note that you can also parameterize the configuration with ${variables}, so you could parameterize the user and password in a connection string, see: - https://logging.apache.org/log4j/2.x/manual/configuration.html#RuntimeLookup - https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution - https://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQLAppenderMongoDB4 If you feel like you still need the factory method as a mechanism to create a provider, then please feel free to provide a PR on GitHub here: https://github.com/apache/logging-log4j2 Gary On Mon, Nov 30, 2020 at 10:17 AM Julian Woodward <jul...@ldcvia.com> wrote: > When the mongodb4 appender was created for log4j2, the ability to specify a > factory class/method in the log4j2.xml file was removed, and the > configuration option was instead reverted to requiring a simple connection > string. > > Was there a technical reason why that needed to happen, or was it just for > simplicity at dev time? > > I've been relying on the factory approach, as the database credentials are > not known until run-time in my use-case. I was also looking forward to > having a mongodb4 version to upgrade to, but as it stands now this is > unfortunately not giving me what I need. > > Thanks! > > Julian Woodward > > PS New to this forum, so please be forgiving of any breaches of etiquette! >