Logging is one of the things improved in the upcoming release 3.0.2. If you are feeling confident you can grab the latest 3.0 branch SVN copy using the instructions on the main site. I can however not remember if the connection logging occurs before or after the bans are checked, so you might have to modify the code slightly.
The problem with logging before bans are checked is that it uses resources, and as such anyone hammering the server can actually bring the server more or less to its knees, especially if it is done badly.
An alternative approach would be to use a third party module to Anope, Neostats or IRC Defender to do the matching after the connection is complete and then have it place the ban on IP.
I'll need to give the logging a little bit of thought however and it might appear as a feature in the next version as its fairly trivial to do.
As for logging DCC transfers thats not really possible. The only thing that can be logged is the initial requests as they are the only thing that pass over the server itself, the rest is direct client to client (DCC). There is also the privacy issue to consider since the DCC request is actually private messages between clients, and as such im afraid i can't be of any help or condone such logging.