Updates to autotools for library detection
[distributedratelimiting.git] / include / zookeeper / zookeeper_log.h
1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 #ifndef ZK_LOG_H_
20 #define ZK_LOG_H_
21
22 #include <zookeeper.h>
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 extern ZOOAPI ZooLogLevel logLevel;
29 #define LOGSTREAM getLogStream()
30
31 #define LOG_ERROR(x) if(logLevel>=ZOO_LOG_LEVEL_ERROR) \
32     log_message(ZOO_LOG_LEVEL_ERROR,__LINE__,__func__,format_log_message x)
33 #define LOG_WARN(x) if(logLevel>=ZOO_LOG_LEVEL_WARN) \
34     log_message(ZOO_LOG_LEVEL_WARN,__LINE__,__func__,format_log_message x)
35 #define LOG_INFO(x) if(logLevel>=ZOO_LOG_LEVEL_INFO) \
36     log_message(ZOO_LOG_LEVEL_INFO,__LINE__,__func__,format_log_message x)
37 #define LOG_DEBUG(x) if(logLevel==ZOO_LOG_LEVEL_DEBUG) \
38     log_message(ZOO_LOG_LEVEL_DEBUG,__LINE__,__func__,format_log_message x)
39
40 ZOOAPI void log_message(ZooLogLevel curLevel, int line,const char* funcName,
41     const char* message);
42
43 ZOOAPI const char* format_log_message(const char* format,...);
44
45 FILE* getLogStream();
46
47 #ifdef __cplusplus
48 }
49 #endif
50
51 #endif /*ZK_LOG_H_*/