syslog显示线程号

首先包括头文件:

#include <syslog.h>

#include <pthread.h>

 

主要使用到的函数为:

openlog:打开/var/log/syslog文件,通常情况下,可以不调用,但是这里需要让不同的线程输出各自的log信息,比如带上线程号,就需要用到openlog的LOG_PID选项。

syslog:将信息输出到syslog文件中,其中第一个参数为log的级别,包括LOG_DEBUG、LOG_INFO、LOG_NOTICE、LOG_NOTICE、LOG_ERR、LOG_CRIT、LOG_ALERT、LOG_EMERG,第二个参数为要记录的format信息。

pthread_self():用来获得当前的线程号,这个是从0开始。

void *workThread(void* arg) { char threadMsg[20]={0} sprintf(threadMsg, "tid:%d", (int)pthread_self()); openlog(threadMsg, LOG_PID, LOG_USER); ... syslog(LOG_NOTICE, "do something/n"); ... closelog(); pthread_exit(NULL); }

 

 

syslog中的显示结果为:

Mar 22 15:43:36 localhost tid:1[1652]: do something

你可能感兴趣的:(user,null)