Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does linux syslogger work?

Tags:

linux

syslog

I am learning linux programming and want to do the following. I would like to create a mini-logger that will work like syslog. I want to be able to replace syslog (not in practice but just to understand at every level how things work).

So in my code, I would write

#include "miniLogger.h"

....
....
miniLogger(DEBUG, "sample debug message");

----
----

Now, I am guessing I would need some kind of daemon to listen for incoming messages from my miniLogger and I have no experience with daemons. Can you point me in the right direction or give me a quick overview how messages can move from my API into a configurable destination. I read the man pages but I need more of an overview of how APIs communicate with daemons in general.

like image 843
Andrew Avatar asked Nov 24 '10 20:11

Andrew


People also ask

How does a syslog server work?

How Does Syslog Work? When operating over a network, syslog uses a client-server architecture where a syslog server listens for and logs messages coming from clients. Forwarding local log messages to a remote log analytics server/service via Syslog has been commonly adopted as a standard industrial logging solution.

How write syslog in Linux?

Use logger command which is a shell command interface to the syslog system log module. It makes or writes one line entries in the system log file from the command line. Last line will log a message in /var/log/message file if backup failed.

Is syslog only for Linux?

Syslog, is a standardized way (or Protocol) of producing and sending Log and Event information from Unix/Linux and Windows systems (which produces Event Logs) and Devices (Routers, Firewalls, Switches, Servers, etc) over UDP Port 514 to a centralized Log/Event Message collector which is known as a Syslog Server.


1 Answers

syslogd listens for log messages over /dev/log, which is a unix domain socket. The socket is datagram-oriented, meaning the protocol is similar to udp.

Your log daemon should open the socket, set the socket to server mode, open a log file in write mode, ask to get notified of packets, parse the messages safely, and write them to the file. The important system calls for doing socket io are described in man 7 socket. To get notified of incoming data on the socket, you can use epoll or select.

like image 183
Tobu Avatar answered Oct 03 '22 20:10

Tobu