- 论坛徽章:
- 0
|
首先谢谢大家的回复!
通过查man文档以及测试,希望最后得出的结论对大家也有所帮助:
syslog(priority,char *fmt,....)
中priority是可以用或的形式支持的,facility|priority.
所以
syslog(LOG_LOCAL5 | LOG_INFO, "%s %s %s %s",getenv("LOGNAME"),getlogin(),ttyname(0),string);
调用方式正常。
另外一种调用方式:
syslog(LOG_LOCAL5, LOG_INFO, "%s %s %s %s(++TRUNC)",getenv("LOGNAME"),getlogin(),ttyname(0), trunc);
在测试是会出core,修改为
syslog(LOG_LOCAL5,|LOG_INFO, "%s %s %s %s(++TRUNC)",getenv("LOGNAME"),getlogin(),ttyname(0), trunc);
之后正常,之前怀疑格式户字符串中(++TRUNC)是否属于特殊应用,从测试结果看,%s(++TRUNC)的目的仅仅是在打印日志的末尾增加(++TRUNC)字符,以提醒日志有截断。 |
|