/*
- * gw-log.h: Logging facilities.
+ * Copyright (c) 1995, the EUROPAGATE consortium (see below).
+ *
+ * The EUROPAGATE consortium members are:
+ *
+ * University College Dublin
+ * Danmarks Teknologiske Videnscenter
+ * An Chomhairle Leabharlanna
+ * Consejo Superior de Investigaciones Cientificas
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation, in whole or in part, for any purpose, is hereby granted,
+ * provided that:
+ *
+ * 1. This copyright and permission notice appear in all copies of the
+ * software and its documentation. Notices of copyright or attribution
+ * which appear at the beginning of any file must remain unchanged.
+ *
+ * 2. The names of EUROPAGATE or the project partners may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * 3. Users of this software (implementors and gateway operators) agree to
+ * inform the EUROPAGATE consortium of their use of the software. This
+ * information will be used to evaluate the EUROPAGATE project and the
+ * software, and to plan further developments. The consortium may use
+ * the information in later publications.
+ *
+ * 4. Users of this software agree to make their best efforts, when
+ * documenting their use of the software, to acknowledge the EUROPAGATE
+ * consortium, and the role played by the software in their work.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE
+ * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF
+ * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
+ * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND
+ * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+/*
+ * Logging facilities.
*
* Europagate, 1994-1995.
*
* $Log: gw-log.h,v $
- * Revision 1.3 1995/02/23 08:32:11 adam
+ * Revision 1.9 1995/12/01 12:41:00 adam
+ * Bug fix.
+ *
+ * Revision 1.8 1995/12/01 12:24:14 adam
+ * New function: gw_log_mask_str.
+ *
+ * Revision 1.7 1995/05/16 09:39:39 adam
+ * LICENSE.
+ *
+ * Revision 1.6 1995/03/30 07:32:42 adam
+ * New log-level: GW_LOG_NOTICE. New 2709 function: iso2709_mk.
+ *
+ * Revision 1.5 1995/03/28 07:52:35 adam
+ * Bug fix: Bad log masks.
+ *
+ * Revision 1.4 1995/03/27 12:50:40 adam
+ * New level: GW_LOG_ERRNO.
+ *
+ * Revision 1.3 1995/02/23 08:32:11 adam
* Changed header.
*
* Revision 1.1.1.1 1995/02/09 17:27:12 adam
/* The log level is an unsigned integer value with at least 16 bits */
/* The log levels are defined below */
-#define GW_LOG_FATAL 0x01
-#define GW_LOG_WARN 0x02
-#define GW_LOG_ACCT 0x04
-#define GW_LOG_STAT 0x08
+#define GW_LOG_FATAL 0x01
+#define GW_LOG_WARN 0x02
+#define GW_LOG_ACCT 0x04
+#define GW_LOG_STAT 0x08
+#define GW_LOG_ERRNO 0x10
+#define GW_LOG_NOTICE 0x20
/* All debug levels */
-#define GW_LOG_DEBUG 0xfff0
-/* Individual debug levels, x sould be in range 0-11 */
-#define GW_LOG_DEBUGN(x) (0x10<<(x))
+#define GW_LOG_DEBUG 0xffc0
+/* Individual debug levels, x sould be in range 0-9 */
+#define GW_LOG_DEBUGN(x) (0x40<<(x))
/* All levels on / All levels except debugging */
-#define GW_LOG_ALL 0xffff
-#define GW_LOG_DEFAULT 0x0f
+#define GW_LOG_ALL 0xffef
+#define GW_LOG_DEFAULT 0x2f
void gw_log_init (const char *app_name);
/*
This function returns 0 on success; -1 on failure.
*/
+unsigned gw_log_mask_str (const char *str);
+/*
+ Return the log level corresponding to str.
+ str is a comma separated sequence of tokens. A token is one of:
+ "all", "default", "def", "fatal", "warn", "stat", "notice", "debug",
+ "none" or "debug"<n> where n is 0..9.
+ The level of each token are ORed with initial level being GW_LOG_DEFAULT
+ unless first token is "none" in which case the initial level is 0 (none).
+ */
+
+
char *gw_strdup (const char *s);
/*
- Works as strdup, which is not defined by ANSI.
+ Works as strdup(3s), which is not defined by ANSI.
*/
/* log file format:
- <appname> <session> <date> <level> <type> <parameter>
+ <appname> <session> <time> <level> <type> <parameter>
Assuming that a 'token' is separated by one or more blanks we have:
<appname> one token
<session> one token
- <date> five tokens (Tue Dec 6 11:34:21 1994)
+ <time> three tokens yymmdd hhmmss sss
+ | | | | | | |_ milliseconds
+ | | | | | |_____ seconds
+ | | | | |_______ minutes
+ | | | |_________ hours
+ | | |____________ day
+ | |______________ month
+ |________________ year
+
<level> one token
<type> one token