1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17/** 18 * @file mod_log_config.h 19 * @brief Logging Configuration Extension Module for Apache 20 * 21 * @defgroup MOD_LOG_CONFIG mod_log_config 22 * @ingroup APACHE_MODS 23 * @{ 24 */ 25 26#include "apr_optional.h" 27#include "httpd.h" 28#include "scoreboard.h" 29 30#ifndef _MOD_LOG_CONFIG_H 31#define _MOD_LOG_CONFIG_H 1 32 33/** 34 * callback function prototype for a external log handler 35 */ 36typedef const char *ap_log_handler_fn_t(request_rec *r, char *a); 37 38/** 39 * callback function prototype for external writer initialization. 40 */ 41typedef void *ap_log_writer_init(apr_pool_t *p, server_rec *s, 42 const char *name); 43/** 44 * callback which gets called where there is a log line to write. 45 */ 46typedef apr_status_t ap_log_writer( 47 request_rec *r, 48 void *handle, 49 const char **portions, 50 int *lengths, 51 int nelts, 52 apr_size_t len); 53 54typedef struct ap_log_handler { 55 ap_log_handler_fn_t *func; 56 int want_orig_default; 57} ap_log_handler; 58 59APR_DECLARE_OPTIONAL_FN(void, ap_register_log_handler, 60 (apr_pool_t *p, char *tag, ap_log_handler_fn_t *func, 61 int def)); 62/** 63 * you will need to set your init handler *BEFORE* the open_logs 64 * in mod_log_config gets executed 65 */ 66APR_DECLARE_OPTIONAL_FN(ap_log_writer_init*, ap_log_set_writer_init,(ap_log_writer_init *func)); 67/** 68 * you should probably set the writer at the same time (ie..before open_logs) 69 */ 70APR_DECLARE_OPTIONAL_FN(ap_log_writer*, ap_log_set_writer, (ap_log_writer* func)); 71 72#endif /* MOD_LOG_CONFIG */ 73/** @} */ 74 75