Apache Developers, Here is the third patch in my series that, together, increase Apache's performance ten-fold. This one optimizes request logging. - Added a fast function to log in common-log format (quick_log()). mod_log_config recognizes the string for CLF (and an alternate, even faster CLF that logs IP addresses instead of host names) and redirects them from the flexible slow path to the custom fast path. This feature is enabled by the USE_QUICK_LOG flag, off my default. - Optimized the general logging path too. - Moved inclusion of from buff.c to buff.h for log_vec() (and for enhancements in forthcoming patches). - Allowed overriding the definition of LOG_BUFSIZE = PIPE_BUF, with caveats for when not to do so. I use LOG_BUFSIZE=65500. - Added a length out-parameter to item_key_func in mod_log_config.c to avoid unnecessary calls to strlen(). Added the_request_len to request_rec and remote_ip_len to conn_rec for the same reason. - Added a new meta-configuration flag called SPEED_DAEMON that enables USE_QUICK_LOG and BUFFERED_LOGS (and additional enhancements in forthcoming patches). - Added ap_inet_ntoa(), a very fast replacement for inet_ntoa(), and changed various pieces of code to use it. - I fixed what I think were errors in the documentation (mod_log_config.html). The document used "%s" in the common log examples to log the status, but I think the correct form is "%>s". If I am wrong, please adjust this patch as necessary. Thanks. - Added a section on performance issues to mod_log_config.html. This patch may break binary compatibility of modules because it adds fields to the request_rec and conn_rec structures. The base for this patch is Apache/1.3.6 + 10x performance increase patches #1 and #2. Again, I welcome your review, questions, and feedback. -- Michael J. Abbott mja@sgi.com