
8. switch (severity) {
9. case _EVENT_LOG_DEBUG:
10. severity_str = "debug";
11. break;
12. case _EVENT_LOG_MSG:
13. severity_str = "msg";
14. break;
15. case _EVENT_LOG_WARN:
16. severity_str = "warn";
17. break;
18. case _EVENT_LOG_ERR:
19. severity_str = "err";
20. break;
21. default:
22. severity_str = "???";
23. break;
24. }
25. (void)fprintf(stderr, "[%s] %s\n", severity_str, msg);//输出到标准错
误终端上
26. }
27. }
从 event_log 函数中可以看到,当函数指针 log_fn 不用 NULL 时,就调用 log_fn 指
向的函数。否则就直接向 stderr 输出日志信息。所以,设置自己的日志回调函数后,如果想
恢复 Libevent 默认的日志回调函数,只需再次调用 event_set_log_callback 函数,参数设
置为 NULL 即可。
日志 API 以及日志消息处理流程:
Libevent 的日志 API 的使用也是挺简单的。首先,使用者确定要记录的日志的级别
和错误类型,然后调用对应的日志函数。有下面这些可供选择的日志函数。
[cpp] view plaincopy
1. void event_err(int eval, const char *fmt, ...);
2. void event_warn(const char *fmt, ...);
3. void event_sock_err(int eval, evutil_socket_t sock, const char *fmt, ...);
4. void event_sock_warn(evutil_socket_t sock, const char *fmt, ...);
5.
6. void event_errx(int eval, const char *fmt, ...);
7. void event_warnx(const char *fmt, ...);
8. void event_msgx(const char *fmt, ...);
9. void _event_debugx(const char *fmt, ...);
评论1
最新资源