Sofia-SIP各个组件都可以输出各式各样的调试信息。
具体输出哪些调试信息由调试等级值决定。等级值通常是模块特定的,值由模块特定的环境变量值决定。所有的模块都有一个缺省的等级值,由环境变量SOFIA_DEBUG来控制。
控制日志以及其他调试输出的环境变量有如下这些:
- SOFIA_DEBUG缺省调试等级(0..9)
- NUA_DEBUG User Agent engine (nua) 调试等级(0..9)
- SOA_DEBUG SDP Offer/Answer engine (soa) 调试等级(0..9)
- NEA_DEBUG Event engine (nea) 调试等级(0..9)
- IPTSEC_DEBUG HTTP/SIP 认证模块调试等级(0..9)
- NTA_DEBUG 事务引擎调试等级(0..9)
-
TPORT_DEBUG 传输事件调试等级(0..9)
- 如果设置来了TPORT_LOG,打印输出所有解析完毕的传输层SIP消息
- TPORT_DUMP文件,用来转储传输层收到的未解析消息
- SU_DEBUG su模块调试等级(0..9)
预定义的调试输出等级有:
- 0 SU_DEBUG_0() – 严重错误
- 1 SU_DEBUG_1() – 危险的错误,子系统层的minimal progress
- 2 SU_DEBUG_2() – 非危险错误
- 3 SU_DEBUG_3() – 告警,进度消息
- 5 SU_DEBUG_5() – 信令协议动作
- 7 SU_DEBUG_7() – 媒体协议动作
- 9 SU_DEBUG_9() – 进出函数,非常详尽的进度
除了上述提到的宏,还有一些打印日志消息的函数:
- su_llog(),su_vllog()
- su_perror(),su_perror2()
可以用下面所列的函数设置日志等级(例如,设置成配置文件中预定义的等级)。
- su_log_set_level(),su_log_soft_set_level()
可以使用su_log_redirect()函数来完成日志输出重定向。例如,重定向到系统日志或者日志服务器