acl/lib_acl/include/stdlib/acl_mylog.h
zsxxsz cc05b877a2 first commit acl to github
first commit acl to github
2013-08-18 17:42:25 +08:00

96 lines
2.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
**============================================================================
**
**
**
** mylog.h, writen by zsx
**
**
**
**============================================================================
*/
#ifndef __ACL_MYLOG_INCLUDE_H_
#define __ACL_MYLOG_INCLUDE_H_
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "acl_define.h"
#include "acl_vstream.h"
#ifdef ACL_UNIX
#include <netinet/in.h>
#endif
typedef struct ACL_LOG ACL_LOG;
/**
* 将当前的时间转换成日志记录格式的时间格式
* @param buf {char*} 内存存储区
* @param size {size_t} buf 的空间大小
*/
ACL_API void acl_logtime_fmt(char *buf, size_t size);
/**
* 设置是否记录线程ID号默认情况下是不记录的
* @param onoff {int} 非 0 表示记录线程ID否则不记录
*/
ACL_API void acl_log_add_tid(int onoff);
/**
* 设置日志的文件流句柄
* @param fp {ACL_VSTREAM *} 文件流句柄
* @param plog_pre {const char*} 日志记录信息前的提示信息,建议用进程
*/
ACL_API void acl_log_fp_set(ACL_VSTREAM *fp, const char *plog_pre);
/**
* 打开日志文件
* @param recipients {const char*} 日志接收器列表,由 "|" 分隔,接收器
* 可以是本地文件或远程套接口,如:
* /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*} 日志记录信息前的提示信息,建议用进程
* 名填写此值
*/
ACL_API int acl_open_log(const char *recipients, const char *plog_pre);
/**
* 写日志
* @param fmt {const char*} 格式参数
* @param ... 参数序列
* @return {int} 写入日志文件的数据量
*/
#ifdef WIN32
ACL_API int acl_write_to_log(const char *fmt, ...);
#else
ACL_API int __attribute__((format(printf,1,2)))
acl_write_to_log(const char *fmt, ...);
#endif
/**
* 写日志
* @param info {const char*} 日志信息的提示信息
* @param fmt {const char*} 格式参数
* @param ap {va_list} 参数列表
* @return {int} 写入日志文件的数据量
*/
ACL_API int acl_write_to_log2(const char *info, const char *fmt, va_list ap);
/**
* 关闭日志文件句柄
*/
ACL_API void acl_close_log(void);
#ifdef __cplusplus
}
#endif
#endif