1 | /*
|
---|
2 | * Copyright (c) 1995-2000, Index Data.
|
---|
3 | *
|
---|
4 | * Permission to use, copy, modify, distribute, and sell this software and
|
---|
5 | * its documentation, in whole or in part, for any purpose, is hereby granted,
|
---|
6 | * provided that:
|
---|
7 | *
|
---|
8 | * 1. This copyright and permission notice appear in all copies of the
|
---|
9 | * software and its documentation. Notices of copyright or attribution
|
---|
10 | * which appear at the beginning of any file must remain unchanged.
|
---|
11 | *
|
---|
12 | * 2. The name of Index Data or the individual authors may not be used to
|
---|
13 | * endorse or promote products derived from this software without specific
|
---|
14 | * prior written permission.
|
---|
15 | *
|
---|
16 | * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
|
---|
17 | * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
---|
18 | * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
---|
19 | * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
|
---|
20 | * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
|
---|
21 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
|
---|
22 | * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
---|
23 | * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
---|
24 | * OF THIS SOFTWARE.
|
---|
25 | *
|
---|
26 | * $Log$
|
---|
27 | * Revision 1.1 2000/08/03 03:10:38 johnmcp
|
---|
28 | * Added the YAZ toolkit source to the packages directory (for z39.50 stuff)
|
---|
29 | *
|
---|
30 | * Revision 1.2 2000/02/28 11:20:06 adam
|
---|
31 | * Using autoconf. New definitions: YAZ_BEGIN_CDECL/YAZ_END_CDECL.
|
---|
32 | *
|
---|
33 | * Revision 1.1 1999/11/30 13:47:11 adam
|
---|
34 | * Improved installation. Moved header files to include/yaz.
|
---|
35 | *
|
---|
36 | * Revision 1.15 1999/08/27 09:40:32 adam
|
---|
37 | * Renamed logf function to yaz_log. Removed VC++ project files.
|
---|
38 | *
|
---|
39 | * Revision 1.14 1998/10/28 10:26:59 adam
|
---|
40 | * New functions log_init_file, log_init_level, log_init_prefix.
|
---|
41 | *
|
---|
42 | * Revision 1.13 1998/10/13 16:11:11 adam
|
---|
43 | * Added printf-format check for logf when using GNUC.
|
---|
44 | *
|
---|
45 | * Revision 1.12 1997/09/04 07:59:02 adam
|
---|
46 | * Added include of xmalloc.h.
|
---|
47 | *
|
---|
48 | * Revision 1.11 1997/09/01 08:49:48 adam
|
---|
49 | * New windows NT/95 port using MSV5.0. To export DLL functions the
|
---|
50 | * YAZ_EXPORT modifier was added. Defined in yconfig.h.
|
---|
51 | *
|
---|
52 | * Revision 1.10 1997/05/14 06:53:40 adam
|
---|
53 | * C++ support.
|
---|
54 | *
|
---|
55 | * Revision 1.9 1997/05/01 15:06:42 adam
|
---|
56 | * Added log_mask_str_x routine.
|
---|
57 | *
|
---|
58 | * Revision 1.8 1996/05/01 12:45:00 quinn
|
---|
59 | * *** empty log message ***
|
---|
60 | *
|
---|
61 | * Revision 1.7 1996/02/05 12:24:26 adam
|
---|
62 | * Implemented log_event_{start,end}-functions.
|
---|
63 | *
|
---|
64 | * Revision 1.6 1995/10/10 16:27:06 quinn
|
---|
65 | * *** empty log message ***
|
---|
66 | *
|
---|
67 | * Revision 1.5 1995/09/29 17:12:03 quinn
|
---|
68 | * Smallish
|
---|
69 | *
|
---|
70 | * Revision 1.4 1995/09/27 15:02:47 quinn
|
---|
71 | * Modified function heads & prototypes.
|
---|
72 | *
|
---|
73 | * Revision 1.3 1995/06/19 12:38:25 quinn
|
---|
74 | * Reorganized include-files. Added small features.
|
---|
75 | *
|
---|
76 | * Revision 1.2 1995/05/16 08:50:31 quinn
|
---|
77 | * License, documentation, and memory fixes
|
---|
78 | *
|
---|
79 | * Revision 1.1 1995/03/30 09:39:41 quinn
|
---|
80 | * Moved .h files to include directory
|
---|
81 | *
|
---|
82 | * Revision 1.4 1994/09/28 13:07:22 adam
|
---|
83 | * Added log_mask_str.
|
---|
84 | *
|
---|
85 | * Revision 1.3 1994/08/18 08:18:45 quinn
|
---|
86 | * Added prefix to log_init.
|
---|
87 | *
|
---|
88 | * Revision 1.2 1994/08/17 14:27:46 quinn
|
---|
89 | * added LOG_ERRNO
|
---|
90 | *
|
---|
91 | * Revision 1.1 1994/08/17 13:22:52 quinn
|
---|
92 | * First version
|
---|
93 | *
|
---|
94 | */
|
---|
95 |
|
---|
96 | #ifndef LOG_H
|
---|
97 | #define LOG_H
|
---|
98 |
|
---|
99 | #include <stdio.h>
|
---|
100 | #include <yaz/yconfig.h>
|
---|
101 | #include <yaz/xmalloc.h>
|
---|
102 |
|
---|
103 | YAZ_BEGIN_CDECL
|
---|
104 |
|
---|
105 | #define LOG_FATAL 0x0001
|
---|
106 | #define LOG_DEBUG 0x0002
|
---|
107 | #define LOG_WARN 0x0004
|
---|
108 | #define LOG_LOG 0x0008
|
---|
109 | #define LOG_ERRNO 0x0010 /* append strerror to message */
|
---|
110 | #define LOG_FILE 0x0020
|
---|
111 |
|
---|
112 | #define LOG_ALL 0xffff
|
---|
113 |
|
---|
114 | #define LOG_DEFAULT_LEVEL (LOG_FATAL | LOG_ERRNO | LOG_LOG | LOG_WARN)
|
---|
115 |
|
---|
116 | #define logf yaz_log
|
---|
117 |
|
---|
118 | YAZ_EXPORT void log_init(int level, const char *prefix, const char *name);
|
---|
119 | YAZ_EXPORT void log_init_file (const char *fname);
|
---|
120 | YAZ_EXPORT void log_init_level (int level);
|
---|
121 | YAZ_EXPORT void log_init_prefix (const char *prefix);
|
---|
122 |
|
---|
123 | YAZ_EXPORT void yaz_log(int level, const char *fmt, ...)
|
---|
124 | #ifdef __GNUC__
|
---|
125 | __attribute__ ((format (printf, 2, 3)))
|
---|
126 | #endif
|
---|
127 | ;
|
---|
128 | YAZ_EXPORT int log_mask_str (const char *str);
|
---|
129 | YAZ_EXPORT int log_mask_str_x (const char *str, int level);
|
---|
130 | YAZ_EXPORT FILE *log_file(void);
|
---|
131 |
|
---|
132 | YAZ_EXPORT void log_event_start (void (*func)(int level, const char *msg, void *info),
|
---|
133 | void *info);
|
---|
134 | YAZ_EXPORT void log_event_end (void (*func)(int level, const char *msg, void *info),
|
---|
135 | void *info);
|
---|
136 |
|
---|
137 | YAZ_END_CDECL
|
---|
138 |
|
---|
139 | #endif
|
---|