X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilclog.h;h=eeaee1edf9283fab06005477da91c21f625835a3;hb=413da0f8686910f5e627393157566ae729ca99c4;hp=b91ab5cb00e2fbcc4b799efcb51ac792cd4fe436;hpb=e2c551b9693b6d42e5997b9df416a17fb94c1ccb;p=silc.git diff --git a/lib/silcutil/silclog.h b/lib/silcutil/silclog.h index b91ab5cb..eeaee1ed 100644 --- a/lib/silcutil/silclog.h +++ b/lib/silcutil/silclog.h @@ -2,7 +2,7 @@ silclog.h - Author: Johnny Mnemonic + Author: Giovanni Giacobbi Copyright (C) 1997 - 2002 Pekka Riikonen @@ -41,6 +41,7 @@ * 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 to choose * the right output channel. * @@ -142,6 +143,22 @@ typedef bool (*SilcLogHexdumpCb)(char *file, char *function, int line, /* 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 @@ -220,9 +237,38 @@ extern DLLAPI bool silc_debug_hexdump; /* Macros */ -#ifdef SILC_WIN32 +#if defined(WIN32) +#ifndef __FUNCTION__ #define __FUNCTION__ "" #endif +#endif + +/****d* silcutil/SilcLogAPI/SILC_ENABLE_DEBUG + * + * NAME + * + * #define SILC_ENABLE_DEBUG + * + * DESCRIPTION + * + * Use this macro to enable the debugging in your application. If + * SILC was compiled with debugging enabled, this macro enables it. + * Use this macro in your application's main header, or in place where + * you need to enable the debugging. + * + * NOTES + * + * You still can control the debugging with silc_debug variable, on + * whether to actually print the debugging or not. This macro is + * used to enable debugging, not to say it is printed or not. + * + * SOURCE + */ +#define SILC_ENABLE_DEBUG \ + #ifndef SILC_DEBUG \ + #define SILC_DEBUG 1 \ + #endif +/***/ /****d* silcutil/SilcLogAPI/SILC_LOG_INFO * @@ -325,13 +371,16 @@ extern DLLAPI bool silc_debug_hexdump; * * SOURCE */ -#ifdef SILC_DEBUG +#if defined(SILC_DEBUG) #define SILC_LOG_DEBUG(fmt) silc_log_output_debug(__FILE__, \ __FUNCTION__, \ __LINE__, \ silc_format fmt) +#define SILC_NOT_IMPLEMENTED(string) \ + SILC_LOG_INFO(("*********** %s: NOT IMPLEMENTED YET", string)); #else #define SILC_LOG_DEBUG(fmt) +#define SILC_NOT_IMPLEMENTED(string) #endif /* SILC_DEBUG */ /***/ @@ -362,7 +411,7 @@ extern DLLAPI bool silc_debug_hexdump; * * SOURCE */ -#ifdef SILC_DEBUG +#if defined(SILC_DEBUG) #define SILC_LOG_HEXDUMP(fmt, data, len) silc_log_output_hexdump(__FILE__, \ __FUNCTION__, \ __LINE__, \ @@ -385,6 +434,7 @@ extern DLLAPI bool silc_debug_hexdump; * * This is the main function for logging output. Please note that you * should rather use one of the logging wrapper macros. + * * If you really want to use this function, its usage is quite simple. * The `type' parameter identifies the channel to use, while the `string' * parameter must be a dynamic allocated (null-terminated) buffer, because @@ -411,6 +461,7 @@ void silc_log_output(SilcLogType type, char *string); * If there has been an error during the opening of this channel, NULL * 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 * not be freed, modified or stored. * @@ -431,10 +482,11 @@ char *silc_log_get_file(SilcLogType type); * logging file for the channel `type'. If you specify an illegal filename * a warning message is printed and FALSE is returned. In this case * logging settings are not changed. + * * You can disable logging for a channel by specifying NULL filename, the - * maxsize in this case is not important. - * The `scheduler' parameter is needed by the internal logging to allow - * buffered output and thus to save HD activity. + * maxsize in this case is not important. The `scheduler' parameter is + * needed by the internal logging to allow buffered output and thus to + * save HD activity. * ***/ bool silc_log_set_file(SilcLogType type, char *filename, SilcUInt32 maxsize, @@ -454,10 +506,10 @@ bool silc_log_set_file(SilcLogType type, char *filename, SilcUInt32 maxsize, * trigger the callback function. If the callback function returns TRUE * SilcLog will assume the input as handled and won't run its default * handler. + * * You can disable/remove a callback by setting it to NULL or calling the - * function silc_log_reset_callbacks. - * If set, the callback function must be in the form described by - * SilcLogCb. + * function silc_log_reset_callbacks. If set, the callback function + * must be in the form described by SilcLogCb. * * SEE ALSO * silc_log_reset_callbacks