直接和rsyslogd 通信写log
rsyslogd 是通过socket与客户端进行消息交换的。默认socket文件是/dev/log。
另外rsyslogd默认是采用DGRAM的socket模式.
下面代码是一个可以写log的程序。
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/time.h>
#include <string.h>
#include <netinet/in.h>
static struct sockaddr_un logAddr;
char *buf = "helloworld";
int main(void)
{
int file;
logAddr.sun_family = AF_UNIX;
strncpy(logAddr.sun_path, "/dev/log", sizeof("/dev/log"));
file = socket(AF_UNIX, SOCK_DGRAM, 0);
connect(file, (struct sockaddr *)&logAddr, sizeof(logAddr));
send(file, buf, 12, 0);
close(file);
return 0;
}
转载请注明出处
浙公网安备 33010602011771号