直接和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;

}



你可能感兴趣的:(syslog)