无法使用log4mongo-java-0.7.4 jar登录到mongodb 3.0

时间:2016-02-19 13:29:13

标签: java mongodb logging

作为项目的一部分,log4mongo-java-0.7.4用于登录到mongodb 2.x,它工作正常。现在我们必须支持MongoDB 3.x.但是使用具有mongo-java-driver-3.2.1.jar依赖性的log4mongo-java-0.7.4 jar,不支持登录MongoDB 3.x。

任何人都可以帮我解决log4mongo-java jar的问题吗?

1 个答案:

答案 0 :(得分:1)

调试代码一段时间后,我能够解决这个问题。由于Mongo 3.x的身份验证机制与2.x中的身份验证机制不同,因此必须按照以下方式修改MongoDbAppender.java中的getMongo()方法。

protected Mongo getMongo(String hostname, String port, String userName, String password, String databaseName)
throws UnknownHostException
{
     String authMech = "SCRAM-SHA-1";
     if ((this.version != null) && (this.version.contains("2."))) {
         authMech = "MONGODB-CR";
     }
     MongoClientURI uri = new MongoClientURI("mongodb://" + userName + ":" + password + "@" + hostname + ":" + port + "/?authSource=" + databaseName + "&authMechanism=" + authMech);
     MongoURI mongoUri = new MongoURI(uri);
     return new Mongo(mongoUri);
}