Opened 13 years ago
Last modified 13 years ago
#1372 closed enhancement
New log features: indentation and thread switching indication — at Version 4
Reported by: | bennylp | Owned by: | bennylp |
---|---|---|---|
Priority: | normal | Milestone: | release-2.0-alpha2 |
Component: | common | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description (last modified by bennylp)
Two new features are introduced by this ticket:
1. Indentation
Indentation of log message to show function depth. Example:
21:13:35.787 pjsua_call.c Answering call 1: code=200 21:13:35.787 pjsua_media.c ...Call 1: updating media.. 21:13:35.787 pjsua_media.c .....Media session call01:0 is destroyed 21:13:35.787 pjsua_media.c ....Audio channel update.. 21:13:35.787 strm0x22f04d8 .....VAD temporarily disabled 21:13:35.788 strm0x22f04d8 .....Encoder stream started 21:13:35.788 strm0x22f04d8 .....Decoder stream started 21:13:35.788 pjsua_app.c ...Call 1 media 0 [type=audio], status is Active 21:13:35.788 pjsua_media.c ...Conf disconnect: 2 -x- 0 21:13:35.788 pjsua_media.c ...Conf connect: 3 --> 0 21:13:35.788 pjsua_media.c ...Conf connect: 0 --> 3
Use pj_log_push_indent() and pj_log_pop_indent() to use this new feature. The PJ_LOG_HAS_INDENT must be set in the log decoration flag (it is set by default by PJSUA-LIB).
Also two new macros to customize the behavior: PJ_LOG_INDENT_SIZE, and PJ_LOG_INDENT_CHAR.
Sample code:
#include <pj/log.h> #define THIS_FILE "sample.c" void inner() { PJ_LOG(4,(THIS_FILE, "We're in inner")); } void outer() { PJ_LOG(4,(THIS_FILE, "Calling inner")); pj_log_push_indent(); inner(); pj_log_pop_indent(); } int main() { pj_log_set_decor(pj_log_get_decor() | PJ_LOG_HAS_INDENT); outer(); return 0; }
The sample code above will produce:
21:13:35.787 sample.c Calling inner 21:13:35.787 sample.c .We're in inner
2. Thread Switch Indication
An exclamation mark will be placed before a log message if the caller thread is different than the caller thread of the previous message.
Example:
21:13:35.788 strm0x22f04d8 .....Decoder stream started 21:13:35.788 udp0x22deab0 !Remote RTCP address switched to 10.0.0.2:40003 21:13:35.788 pjsua_media.c !.....Audio updated, stream #0: speex (sendrecv) 21:13:35.788 pjsua_app.c ...Call 1 media 0 [type=audio], status is Active 21:13:35.788 pjsua_media.c ...Conf disconnect: 2 -x- 0
This feature is controlled by the new PJ_LOG_HAS_THREAD_SWC log decor. It is set by default by PJSUA-LIB.
Change History (4)
comment:1 Changed 13 years ago by bennylp
- Description modified (diff)
comment:2 Changed 13 years ago by bennylp
comment:3 Changed 13 years ago by bennylp
comment:4 Changed 13 years ago by bennylp
- Description modified (diff)
(In [3752]) Implemented re #1372: New log features: indentation and thread switching indication