John could you give some examples of the log messages (ones actually output to the log) that you thought were excessive? (did you mean client or server? both?) It might help to frame the conversation. We might be able to address some of the more egregious ones.
Here's a client session (default log4j.properties) where I created a client, ran a few commands, then quit (cli shell):
2010-11-04 17:16:21,319 - INFO [main:ZooKeeper@373] - Initiating client connection, connectString= sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@2c6f7ce9
2010-11-04 17:16:21,347 - INFO [main-SendThread():ClientCnxn$SendThread@1000] - Opening socket connection to server localhost/127.0.0.1:2181
2010-11-04 17:16:21,392 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@908] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2010-11-04 17:16:21,486 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@701] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x12c1963f8210000, negotiated timeout = 30000
then nothing until I quit
2010-11-04 17:16:49,401 - INFO [main:ZooKeeper@538] - Session: 0x12c1963f8210000 closed
So the entirety of the logging today is just 4 messages for the client establishment, one for closing the client. During the time that the client has an active session established there are no messages output. I don't see that as excessive personally, but others might not think the same. In my experience these are some very important messages when helping postmortem production failures.
I could see where we might drop msgs 1-3 to debug level (keep 4, the "established" msg), as long as we highlight connection attempts that fail. Having detail about the sessionid and negotiated timeout is pretty critical though, from an informational perspective.