Hi all, So, I got tired of trying to make sysklogd play nice with musl, and I built this[0].
It probably needs work, but I thought I would request comments. It's the syslog for my toy/personal obsession distro. I think it adheres to the suckless philosophy pretty well. It opens a UNIX socket at /dev/log, chroots to /var/log (configurable in config.def.h), reads from the socket it opened, and writes to a series of files (again, config.def.h) in /var/log based on the facility that is logging. I ran into a naming issue. The word "priority" gets applied to both the octal mask sent within < > by the library, and to the "severeness" factor within that. Internally, I've called the string sent by the logger "priority" and the low-order "how screwed are you?" bits "severity" (IIRC metalog does that too). The logd (built as "logwd" -- the -wallah/-w suffix is a symptom of my being stationed in India -- ask a Hindi speaker) does nothing particularly clever or impressive. It parses the priority, somewhat modifies the format of the rest of the headers, and writes the rest to the logfile appropriate to the logging facility (again, configurable in config.def.h). It accepts a single command line argument: a maximum severity level to log (defaults at LOG_WARN -- and "maximum" in that higher-severity messages have lower severity numbers). It currently uses daemon(3) to detach, but I'm open to an argument that your daemon manager should do that instead. (My toy distro doesn't have a daemon manager yet.) I've tested it on musl-1.0.3 and glibc-2.17 (whatever comes with the latest Slackware -- I think that's GNU and not EGLIBC), and it seems to do what is advertised. I don't pretend I'm a programmer, so any suggestions for improvements will be met non-defensively. Cheers, Weldon [0]: https://github.com/weldongoree/langurwallah/tree/master/logwallah also: there's a lot of random crap in sibling directories, so don't bother. Except maybe for pkgwallah, which I think is a pretty cool package manager.
