From 9401f816dd0d9d550fe98a8507224bde51c4b847 Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 02:41:33 -0500 Subject: upload tomcat JIRA: BOTTLENECK-7 Change-Id: I875d474869efd76ca203c30b60ebc0c3ee606d0e Signed-off-by: hongbotian --- .../native/common/jk_logger.h | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_logger.h (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_logger.h') diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_logger.h b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_logger.h new file mode 100644 index 00000000..b3ba7c99 --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_logger.h @@ -0,0 +1,139 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*************************************************************************** + * Description: Logger object definitions * + * Author: Gal Shachor * + * Version: $Revision: 1001219 $ * + ***************************************************************************/ + +#ifndef JK_LOGGER_H +#define JK_LOGGER_H + +#include "jk_global.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define JK_TIME_MAX_SIZE (64) + +typedef struct jk_logger jk_logger_t; +struct jk_logger +{ + void *logger_private; + int level; + const char *log_fmt; /* the configured timestamp format for logging */ + char log_fmt_subsec[JK_TIME_MAX_SIZE]; /* like log_fmt, but milli/micro seconds marker + replaced, because strftime() doesn't handle those */ + int log_fmt_type; /* do we want milli or microseconds */ + size_t log_fmt_offset; /* at which position should we insert */ + size_t log_fmt_size; /* how long is this format string */ + + int (JK_METHOD * log) (jk_logger_t *l, int level, int used, char *what); + +}; + +typedef struct jk_file_logger_t jk_file_logger_t; +struct jk_file_logger_t +{ + FILE *logfile; + /* For Apache 2 APR piped logging */ + void *jklogfp; + /* For Apache 1.3 piped logging */ + int log_fd; +}; + +/* Level like Java tracing, but available only + at compile time on DEBUG preproc define. + */ +#define JK_LOG_TRACE_LEVEL 0 +#define JK_LOG_DEBUG_LEVEL 1 +#define JK_LOG_INFO_LEVEL 2 +#define JK_LOG_WARNING_LEVEL 3 +#define JK_LOG_ERROR_LEVEL 4 +#define JK_LOG_EMERG_LEVEL 5 +#define JK_LOG_REQUEST_LEVEL 6 +#define JK_LOG_DEF_LEVEL JK_LOG_INFO_LEVEL + +#define JK_LOG_TRACE_VERB "trace" +#define JK_LOG_DEBUG_VERB "debug" +#define JK_LOG_INFO_VERB "info" +#define JK_LOG_WARN_VERB "warn" +#define JK_LOG_ERROR_VERB "error" +#define JK_LOG_EMERG_VERB "emerg" +#define JK_LOG_DEF_VERB JK_LOG_INFO_VERB + +#if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1200)) +#define JK_LOG_TRACE __FILE__,__LINE__,__FUNCTION__,JK_LOG_TRACE_LEVEL +#define JK_LOG_DEBUG __FILE__,__LINE__,__FUNCTION__,JK_LOG_DEBUG_LEVEL +#define JK_LOG_ERROR __FILE__,__LINE__,__FUNCTION__,JK_LOG_ERROR_LEVEL +#define JK_LOG_EMERG __FILE__,__LINE__,__FUNCTION__,JK_LOG_EMERG_LEVEL +#define JK_LOG_INFO __FILE__,__LINE__,__FUNCTION__,JK_LOG_INFO_LEVEL +#define JK_LOG_WARNING __FILE__,__LINE__,__FUNCTION__,JK_LOG_WARNING_LEVEL +#else +#define JK_LOG_TRACE __FILE__,__LINE__,NULL,JK_LOG_TRACE_LEVEL +#define JK_LOG_DEBUG __FILE__,__LINE__,NULL,JK_LOG_DEBUG_LEVEL +#define JK_LOG_ERROR __FILE__,__LINE__,NULL,JK_LOG_ERROR_LEVEL +#define JK_LOG_EMERG __FILE__,__LINE__,NULL,JK_LOG_EMERG_LEVEL +#define JK_LOG_INFO __FILE__,__LINE__,NULL,JK_LOG_INFO_LEVEL +#define JK_LOG_WARNING __FILE__,__LINE__,NULL,JK_LOG_WARNING_LEVEL +#endif + +#define JK_LOG_REQUEST __FILE__,0,NULL,JK_LOG_REQUEST_LEVEL + +#if defined(JK_PRODUCTION) +/* TODO: all DEBUG messages should be compiled out + * when this define is in place. + */ +#define JK_IS_PRODUCTION 1 +#define JK_TRACE_ENTER(l) +#define JK_TRACE_EXIT(l) +#else +#define JK_IS_PRODUCTION 0 +#define JK_TRACE_ENTER(l) \ + do { \ + if ((l) && (l)->level == JK_LOG_TRACE_LEVEL) { \ + int tmp_errno = errno; \ + jk_log((l), JK_LOG_TRACE, "enter"); \ + errno = tmp_errno; \ + } } while (0) + +#define JK_TRACE_EXIT(l) \ + do { \ + if ((l) && (l)->level == JK_LOG_TRACE_LEVEL) { \ + int tmp_errno = errno; \ + jk_log((l), JK_LOG_TRACE, "exit"); \ + errno = tmp_errno; \ + } } while (0) + +#endif /* JK_PRODUCTION */ + +#define JK_LOG_NULL_PARAMS(l) jk_log((l), JK_LOG_ERROR, "NULL parameters") + +/* Debug level macro + * It is more efficient to check the level prior + * calling function that will not execute anyhow because of level + */ +#define JK_IS_DEBUG_LEVEL(l) ((l) && (l)->level < JK_LOG_INFO_LEVEL) + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* JK_LOGGER_H */ -- cgit 1.2.3-korg