acl/lib_acl/include/stdlib/acl_msg.h

286 lines
9.2 KiB
C
Raw Normal View History

#ifndef ACL_MSG_INCLUDE_H
2014-11-19 00:25:21 +08:00
#define ACL_MSG_INCLUDE_H
#ifdef __cplusplus
extern "C" {
#endif
#include "acl_define.h"
#include <stdarg.h>
#include "acl_vstream.h"
#undef USE_PRINTF_MACRO
/**
*
* acl_msg_pre_write
* @param ctx {void*}
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
typedef void (*ACL_MSG_PRE_WRITE_FN)(void *ctx, const char *fmt, va_list ap);
/**
*
* acl_msg_register acl_msg_open
*
* @param file_name {const char*}
*
* @param ctx {void*}
* @return {int} -1
2014-11-19 00:25:21 +08:00
*/
typedef int (*ACL_MSG_OPEN_FN) (const char *file_name, void *ctx);
/**
*
* acl_msg_register acl_msg_close
*
* @param ctx {void*}
2014-11-19 00:25:21 +08:00
*/
typedef void (*ACL_MSG_CLOSE_FN) (void *ctx);
/**
*
* acl_msg_register 便
*
* @param ctx {void*}
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
typedef void (*ACL_MSG_WRITE_FN) (void *ctx, const char *fmt, va_list ap);
/**
*
* @param open_fn {ACL_MSG_OPEN_FN}
* @param close_fn {ACL_MSG_CLOSE_FN}
* @param write_fn {ACL_MSG_WRITE_FN}
* @param ctx {void*}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_register(ACL_MSG_OPEN_FN open_fn, ACL_MSG_CLOSE_FN close_fn,
ACL_MSG_WRITE_FN write_fn, void *ctx);
/**
* acl_msg_register
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_unregister(void);
/**
*
*
* @param pre_write {ACL_MSG_PRE_WRITE_FN}
* @param ctx {void*}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_pre_write(ACL_MSG_PRE_WRITE_FN pre_write, void *ctx);
/**
*
* @deprecated 使
2014-11-19 00:25:21 +08:00
*/
extern ACL_API int acl_msg_verbose;
/**
* acl_msg_open acl_msg_info/error/fatal/warn
*
*
* @param onoff {int} 0
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_stdout_enable(int onoff);
/**
* acl_msg_error_xxx/acl_msg_warn_xxx
*
* @param onoff {int} 0 /
*/
ACL_API void acl_msg_trace_enable(int onoff);
2014-11-19 00:25:21 +08:00
/**
*
* @param log_file {const char*} "|"
* :
2014-11-19 00:25:21 +08:00
* /tmp/test.log|UDP:127.0.0.1:12345|TCP:127.0.0.1:12345|UNIX:/tmp/test.sock
* /tmp/test.log, UDP:127.0.0.1:12345,
* TCP:127.0.0.1:12345 UNIX:/tmp/test.sock
* @param plog_pre {const char*}
* @param info_pre {const char*}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_open(const char *log_file, const char *info_pre);
/**
*
* @param fp {ACL_VSTREAM *}
* @param info_pre {const char*}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_open2(ACL_VSTREAM *fp, const char *info_pre);
/**
*
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_close(void);
/**
*
2014-11-19 00:25:21 +08:00
*/
#ifndef USE_PRINTF_MACRO
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_info(const char *fmt,...);
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_warn(const char *fmt,...);
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_error(const char *fmt,...);
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_fatal(const char *fmt,...);
/**
*
* @param status {int}
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(2, 3)
acl_msg_fatal_status(int status, const char *fmt,...);
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_panic(const char *fmt,...);
/**
*
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_info2(const char *fmt, va_list ap);
/**
*
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_warn2(const char *fmt, va_list ap);
/**
*
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_error2(const char *fmt, va_list ap);
/**
*
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_fatal2(const char *fmt, va_list ap);
/**
*
* @param status {int}
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_fatal_status2(int status, const char *fmt, va_list ap);
/**
*
* @param fmt {const char*}
* @param ap {va_list}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_msg_panic2(const char *fmt, va_list ap);
#else
/**
*
2014-11-19 00:25:21 +08:00
*/
#include <stdio.h>
#undef acl_msg_info
#undef acl_msg_warn
#undef acl_msg_error
#undef acl_msg_fatal
#undef acl_msg_panic
#define acl_msg_info acl_msg_printf
#define acl_msg_warn acl_msg_printf
#define acl_msg_error acl_msg_printf
#define acl_msg_fatal acl_msg_printf
#define acl_msg_panic acl_msg_printf
#endif
/**
* C的 strerror, 线
*
* @param errnum {unsigned int}
* @param buffer {char*}
* @param size {int} buffer
* @return {const char*} buffer
2014-11-19 00:25:21 +08:00
*/
ACL_API const char *acl_strerror(unsigned int errnum, char *buffer, int size);
/**
*
* @param buffer {char*}
* @param size {int} buffer
* @return {const char*} buffer
2014-11-19 00:25:21 +08:00
*/
ACL_API const char *acl_last_strerror(char *buffer, int size);
/**
* 线线
* 使
* @return {const char *}
2014-11-19 00:25:21 +08:00
*/
ACL_API const char *acl_last_serror(void);
/**
*
* @return {int}
2014-11-19 00:25:21 +08:00
*/
ACL_API int acl_last_error(void);
/**
*
* @param errnum {int}
2014-11-19 00:25:21 +08:00
*/
ACL_API void acl_set_error(int errnum);
/**
*
* @param fmt {const char*}
* @param ...
2014-11-19 00:25:21 +08:00
*/
ACL_API void ACL_PRINTF(1, 2) acl_msg_printf(const char *fmt,...);
#ifdef __cplusplus
}
#endif
#endif