2015-05-07 2 views
1

Когда моей клиентской программе Cassandra, которая использует драйвер Java Datastax, задана недопустимая точка контакта (имя компьютера, которое на самом деле не запускается демоном Cassandra), драйвер сам записывает стек. Однако stacktrace бесполезен, так как есть ошибка конфигурации, а не ошибка, и на нее предшествует гораздо более информативное предупреждающее сообщение.Предотвращение регистрации стоп-кадра для плохой контактной точки Casandra

Как настроить драйвер 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 

ответ

0

Это звучит как функция запроса. Не стесняйтесь создавать jira - https://datastax-oss.atlassian.net/secure/Dashboard.jspa

Вы можете отказаться от регистрации, но я не думаю, что вы хотите исключить ERROR или время выхода из системы.

Вы только обеспокоены ОШИБКАМИ в ваших журналах? Может быть полезно знать, когда у вас есть сбитые узлы, которые являются точками контакта ...

0

В общем случае имеет смысл отображать трассировку стека, это может быть другая ошибка (например, на сервере работает Cassandra, но аутентификация включена, и вы не предоставляете правильные учетные данные).

Если вы действительно хотите подавить следы стека в журнале, это возможно, возможно, с помощью custom layout.

+0

«В общем случае имеет смысл показать трассировку стека» нет, это имеет смысл только для логических ошибок в программе. Не для сетевых проблем или ошибок конфигурации. – Raedwald