Cassandra 防止记录坏卡桑德拉触点的stacktrace

Cassandra 防止记录坏卡桑德拉触点的stacktrace,cassandra,logback,datastax-java-driver,Cassandra,Logback,Datastax Java Driver,当我的Cassandra客户端程序(使用Datastax Java驱动程序)被赋予一个无效的联系点(计算机主机名),而不是实际运行Cassandra守护程序时,驱动程序本身会记录一个stacktrace。然而,stacktrace毫无价值,因为存在一个配置错误而不是一个bug,并且它前面有一条信息更丰富的警告消息 在这种情况下,如何配置Cassandra驱动程序使其不出现异常,或者如何配置logback使其不记录stacktrace 以下是我目前收到的嘈杂的日志消息: 2015-05-07 13

当我的Cassandra客户端程序(使用Datastax Java驱动程序)被赋予一个无效的联系点(计算机主机名),而不是实际运行Cassandra守护程序时,驱动程序本身会记录一个stacktrace。然而,stacktrace毫无价值,因为存在一个配置错误而不是一个bug,并且它前面有一条信息更丰富的警告消息

在这种情况下,如何配置Cassandra驱动程序使其不出现异常,或者如何配置logback使其不记录stacktrace

以下是我目前收到的嘈杂的日志消息:

2015-05-07 13:55:22,758 my-program: WARN You listed test-host-2.example.com/172.16.12.202:9042 in your contact points, but it could not be reached at startup 2015-05-07 13:55:22,919 my-program: WARN Some contact points don't match specified local data center. Local DC = DC1. Non-conforming contact points: /172.16.12.204:9042 (DC2) 2015-05-07 13:55:28,105 my-program: ERROR Error creating pool to test-host-2.example.com/172.16.12.202:9042 com.datastax.driver.core.TransportException: [test-host-2.example.com/172.16.12.202:9042] Cannot connect at com.datastax.driver.core.Connection.(Connection.java:106) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.PooledConnection.(PooledConnection.java:32) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.Connection$Factory.open(Connection.java:521) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.SingleConnectionPool.(SingleConnectionPool.java:76) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.HostConnectionPool.newInstance(HostConnectionPool.java:35) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:239) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.SessionManager.access$400(SessionManager.java:39) ~[my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:272) [my-program-1.0.0.1.jar:1.0.0.1] at com.datastax.driver.core.SessionManager$3.call(SessionManager.java:264) [my-program-1.0.0.1.jar:1.0.0.1] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_75] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_75] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_75] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75] Caused by: org.jboss.netty.channel.ConnectTimeoutException: connection timed out: test-host-2.example.com/172.16.12.202:9042 at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137) ~[my-program-1.0.0.1.jar:1.0.0.1] at org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83) ~[my-program-1.0.0.1.jar:1.0.0.1] at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) ~[my-program-1.0.0.1.jar:1.0.0.1] at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) ~[my-program-1.0.0.1.jar:1.0.0.1] ... 3 common frames omitted
这听起来像是一个功能请求。请随意创建一个jira-

您可以关闭日志记录,但我认为您不希望排除错误或连接超时


你只是被日志中的错误所困扰吗?了解何时关闭作为接触点的节点可能很有用…

在一般情况下,显示堆栈跟踪是有意义的,可能是另一个错误,例如服务器确实运行Cassandra,但已启用身份验证,并且您没有提供正确的凭据


如果您真的想在Logback中抑制堆栈跟踪,显然可以使用。

在一般情况下,显示堆栈跟踪是有意义的,它只对程序中的逻辑错误有意义。不适用于网络问题或配置错误。