*/
-/****h* silcutil/SilcLogAPI
+/****h* silcutil/SILC Logging Interface
*
* DESCRIPTION
*
* This is the main logging channel id. There are currently four known
* logging channels (plus the debugging output channel), and they are
* ordered by importance.
- * See the source code for SILC coding conventions about how choosing
+ * See the source code for SILC coding conventions about how to choose
* the right output channel.
*
* SOURCE
/* This should be used for warnings and non critical failures */
SILC_LOG_WARNING,
- /* Generic error and critical failures messages */
+ /* Generic error and critical failure messages */
SILC_LOG_ERROR,
/* Fatal messages (usually situations that will lead to a program crash */
SILC_LOG_FATAL,
- /* Total logging channels */
+ /* Total number logging channels */
SILC_LOG_MAX
} SilcLogType;
/***/
* SYNOPSIS
*
* typedef bool (*SilcDebugHexdumpCb)(char *file, char *function, int line,
- * unsigned char *data, uint32 data_len,
+ * unsigned char *data, SilcUInt32 data_len,
* char *message, void *context;
*
* DESCRIPTION
*
* The hexdump logging callback function. The default behaviour is to
- * print a formatted hexdump to stderr, and is commonly what you would it
- * like to be. `file', `function', and `line' are the corresponding
+ * print a formatted hexdump to stderr, and is commonly what you would
+ * like it to be. `file', `function', and `line' are the corresponding
* offsets in the source files. `data' is the begin of the buffer that
* should be hexdumped, which is `data_len' bytes long.
* The `message' parameter points to a null-terminated buffer containing
*
***/
typedef bool (*SilcLogHexdumpCb)(char *file, char *function, int line,
- unsigned char *data, uint32 data_len,
+ unsigned char *data, SilcUInt32 data_len,
char *message, void *context);
/* Global Variables */
+/****v* silcutil/SilcLogAPI/silc_log_timestamp
+ *
+ * NAME
+ *
+ * bool silc_log_timestamp -- enable/disable fast logging timestamp
+ *
+ * DESCRIPTION
+ *
+ * Causes SilcLog to add a timestamp as returned by silc_get_time().
+ * This may be useful for example if you run your application under a
+ * daemon helper like watchdog that adds its own timestamp. Defaults to
+ * true.
+ *
+ ***/
+extern DLLAPI bool silc_log_timestamp;
+
/****v* silcutil/SilcLogAPI/silc_log_quick
*
* NAME
/* Macros */
-#ifdef WIN32
+#ifdef SILC_WIN32
+#ifndef __FUNCTION__
#define __FUNCTION__ ""
#endif
+#endif
/****d* silcutil/SilcLogAPI/SILC_LOG_INFO
*
* DESCRIPTION
*
* This is a special wrapper to the debugging output (usually stderr).
- * The standard behaviour is the same as SILC_LOG_INFO, but this macro
- * also depends on the global debugging macro SILC_DEBUG.
- * Undefining the global SILC_DEBUG define causes these functions to be
- * defined to an empty value, thus removing all logging calls from the
- * compiled program.
- *
- * SEE ALSO
- * SILC_LOG_INFO
+ * The standard behaviour is the same as SILC_LOG_INFO, with the difference
+ * that this macro also depends on the global define SILC_DEBUG.
+ * Undefining SILC_DEBUG causes these functions to be defined to an empty
+ * value, thus removing all debug logging calls from the compiled
+ * application.
+ * This macro is also affected by the global variable silc_debug.
*
* SOURCE
*/
__FUNCTION__, \
__LINE__, \
silc_format fmt)
+#define SILC_NOT_IMPLEMENTED(string) \
+ SILC_LOG_DEBUG(("*********** %s: NOT IMPLEMENTED YET", string));
#else
#define SILC_LOG_DEBUG(fmt)
+#define SILC_NOT_IMPLEMENTED(string)
#endif /* SILC_DEBUG */
/***/
* behaves slightly differently from other logging wrappers.
* The first parameter, is composed by a group of parameters delimited by
* parenthesis.
- * The second parameter is a (char *) pointer to the beginning of the
- * memory section that should be hexdumped, and the third parameter is
- * the length of this memory section.
- * This macro is also affected by the global variable silc_debug_hexdump.
+ * The second parameter is a `char *' pointer pointing to the beginning
+ * of the memory section that should be hexdumped, and the third parameter
+ * is the length of this memory section.
* Undefining the global SILC_DEBUG define causes these functions to be
- * defined to an empty value, thus removing all logging calls from the
- * compiled program.
+ * defined to an empty value, thus removing all debug logging calls from
+ * the compiled application.
+ * This macro is also affected by the global variable silc_debug_hexdump.
*
* EXAMPLE
*
* is returned, even if the file has been previously set with
* silc_log_set_file().
* The returned pointer points to internally allocated storage and must
- * must not be freed, modified or stored.
+ * not be freed, modified or stored.
*
***/
char *silc_log_get_file(SilcLogType type);
*
* SYNOPSIS
*
- * bool silc_log_set_file(SilcLogType type, char *filename, uint32 maxsize,
+ * bool silc_log_set_file(SilcLogType type, char *filename,
+ * SilcUInt32 maxsize,
* SilcSchedule scheduler);
*
* DESCRIPTION
* buffered output and thus to save HD activity.
*
***/
-bool silc_log_set_file(SilcLogType type, char *filename, uint32 maxsize,
+bool silc_log_set_file(SilcLogType type, char *filename, SilcUInt32 maxsize,
SilcSchedule scheduler);
/****f* silcutil/SilcLogAPI/silc_log_set_callback
* SilcLogCb.
*
* SEE ALSO
- * SilcLogCb, silc_log_reset_callbacks
+ * silc_log_reset_callbacks
*
***/
void silc_log_set_callback(SilcLogType type, SilcLogCb cb, void *context);
*
* Forces all logging channels to close and reopen their streams. Useful
* for example after a SIGHUP signal.
- * Please note that this function could cause some warning messages if
- * some logging channel points to an illegal filename.
+ * Please note that this function could generate some warning messages if
+ * one or more logging channels point to an illegal filename.
*
***/
void silc_log_reset_all();
*
* void silc_log_output_hexdump(char *file, char *function,
* int line, void *data_in,
- * uint32 len, char *string);
+ * SilcUInt32 len, char *string);
*
* DESCRIPTION
*
***/
void silc_log_output_hexdump(char *file, char *function,
int line, void *data_in,
- uint32 len, char *string);
+ SilcUInt32 len, char *string);
/****f* silcutil/SilcLogAPI/silc_log_set_debug_callbacks
*