{"id":16164254,"url":"https://github.com/troglobit/sysklogd","last_synced_at":"2025-04-05T03:08:49.557Z","repository":{"id":37081991,"uuid":"143292860","full_name":"troglobit/sysklogd","owner":"troglobit","description":"BSD syslog daemon with syslog()/syslogp(), i.e., structured logging API replacement for Linux, RFC3164 + RFC5424","archived":false,"fork":false,"pushed_at":"2025-03-24T05:02:08.000Z","size":1124,"stargazers_count":103,"open_issues_count":5,"forks_count":22,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T02:05:00.726Z","etag":null,"topics":["freebsd","linux","log-daemons","netbsd","rfc3164","rfc5424","structured-logging","syslog","syslog-daemon","syslog-server","syslogd"],"latest_commit_sha":null,"homepage":"https://troglobit.com/sysklogd.html","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/troglobit.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["troglobit"]}},"created_at":"2018-08-02T12:38:53.000Z","updated_at":"2025-03-25T03:10:25.000Z","dependencies_parsed_at":"2023-01-25T23:00:26.196Z","dependency_job_id":"c97e80a0-c2e4-4e0a-beba-7025f991fb7c","html_url":"https://github.com/troglobit/sysklogd","commit_stats":{"total_commits":886,"total_committers":15,"mean_commits":59.06666666666667,"dds":"0.23476297968397286","last_synced_commit":"c1f8842853378781c2fdf6e70070a95539ba7d2e"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fsysklogd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fsysklogd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fsysklogd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fsysklogd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/troglobit","download_url":"https://codeload.github.com/troglobit/sysklogd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280270,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["freebsd","linux","log-daemons","netbsd","rfc3164","rfc5424","structured-logging","syslog","syslog-daemon","syslog-server","syslogd"],"created_at":"2024-10-10T02:45:55.976Z","updated_at":"2025-04-05T03:08:49.539Z","avatar_url":"https://github.com/troglobit.png","language":"C","funding_links":["https://github.com/sponsors/troglobit"],"categories":["systemd-journald"],"sub_categories":[],"readme":"```\n                  .--.  .--.              .--.\n.-----.--.--.-----|  |--|  :-----.-----.--|  |\n|__ --|  |  |__ --|    \u003c|  |  _  |  _  |  _  |    RFC3164 :: syslogd for Linux\n|_____|___  |_____|__|__|__|_____|___  |_____|    RFC5424 :: w/NetBSD syslogp()\n      |_____|                    |_____|\n\n\u003c23\u003eAug 24 05:14:15 192.0.2.1 myproc[8710]: Kilroy was here.\n\u003c23\u003e1 2019-11-04T00:50:15.001234+01:00 troglobit myproc 8710 - - Kilroy was here.\n```\n[![BSD Badge][]][BSD License] [![GitHub Status][]][GitHub] [![Coverity Status][]][Coverity Scan]\n\nTable of Contents\n-----------------\n\n* [Introduction](#introduction)\n* [Using -lsyslog](#using--lsyslog)\n* [Build \u0026 Install](#build--install)\n* [Building from GIT](#building-from-git)\n* [Origin \u0026 References](#origin--references)\n\n\u003e **Tip:** the Gentoo project has a very nice article detailing sysklogd\n\u003e ➤ \u003chttps://wiki.gentoo.org/wiki/Sysklogd\u003e\n\n\nIntroduction\n------------\n\nThis is the continuation of the original Debian/Ubuntu syslog daemon,\nupdated with full [RFC3164][] and [RFC5424][] support from NetBSD and\nFreeBSD.  The package includes the `libsyslog.{a,so}` library with a\n`syslog.h` header replacement, the `syslogd` daemon, and a command\nline tool called `logger`.\n\n- https://man.troglobit.com/man1/logger.1.html\n- https://man.troglobit.com/man8/syslogd.8.html\n- https://man.troglobit.com/man5/syslog.conf.5.html\n\n`libsyslog` and `syslog/syslog.h`, derived directly from NetBSD, expose\n`syslogp()` and other new features available only in [RFC5424][]:\n\n- https://man.troglobit.com/man3/syslogp.3.html\n- https://netbsd.gw.com/cgi-bin/man-cgi?syslog+3+NetBSD-current\n\nThe `syslogd` daemon is an enhanced version of the standard Berkeley\nutility program, updated with DNA from FreeBSD.  It provides logging of\nmessages received from the kernel, programs and facilities on the local\nhost as well as messages from remote hosts.  Although fully compatible\nwith standard C-library implementations of the `syslog()` API (GLIBC,\nmusl libc, uClibc), `libsyslog` must be used in your application to\nunlock the new [RFC5424][] `syslogp()` API.\n\nThe included `logger` tool is primarily made for use with sysklogd, but\ncan be used stand-alone too.  It is not command line compatible with the\n\"standard\" Linux logger tool from the bsdutils project.  Instead it is\ncompatible with the actual BSD logger tool(s) -- only major difference\nis its support for `-I PID`, similar to the bsdutils `--id=PID`.  The\n`logger` tool can be used from the command line, or script, to send both\nRFC5424 (default) and old-style (BSD) RFC3164 formatted messages using\n`libsyslog` to `syslogd` for local processing, or to a remote server.\n\nMain differences from the original sysklogd package are:\n\n- The separate `klogd` daemon is no longer part of the sysklogd project,\n  syslogd now natively supports logging kernel messages as well\n- *Major* command line changes to `syslogd`, for compatibility with *BSD\n- Supports `include /etc/syslog.d/*.conf` directive, see example .conf\n- Built-in log-rotation support, with compression by default, useful for\n  embedded systems.  No need for cron and/or a separate log rotate daemon\n- Full [RFC3164][] and [RFC5424][] support from NetBSD and FreeBSD\n- Support for sending RFC3164 style remote syslog messages, including\n  timestamp and hostname.  Defaults to send w/o for compatibility\n- Support for sending RFC5424 style remote syslog messages\n- Support for sending messages to a custom port on a remote server\n- Support for listening to a custom port\n- Support for remote peer filtering, from FreeBSD\n- Support for disabling DNS reverse lookups for each remote log message\n- Support for FreeBSD Secure Mode, remote logging enabled by default(!)\n- Support for FreeBSD style property based filtering.  Filter messages\n  using host or program name, regexp, substring match, and more!\n- Support for remote logging to a multicast group, as well as acting as\n  a multicast group receiver of syslog messages, both IPv4 and IPv6\n- Includes a fit for purpose `logger` tool, compatible with `syslogd`,\n  leveraging the full RFC5424 capabilities (`msgid` etc.)\n- Includes a syslog library and system header replacement for logging\n- FreeBSD socket receive buffer size patch\n- Avoid blocking `syslogd` if console is backed up\n- Touch PID file on `SIGHUP`, for integration with [Finit][]\n- GNU configure \u0026 build system to ease porting/cross-compiling\n- Support for configuring remote syslog timeout\n\nPlease file bug reports, or send pull requests for bug fixes and/or\nproposed extensions at [GitHub][Home].\n\n\nUsing -lsyslog\n--------------\n\nlibsyslog is by default installed as a library with a header file:\n\n```C\n#include \u003csyslog/syslog.h\u003e\n```\n\nThe output from the `pkg-config` tool holds no surprises:\n\n```sh\n$ pkg-config --libs --static --cflags libsyslog\n-I/usr/local/include -L/usr/local/lib -lsyslog\n```\n\nThe prefix path `/usr/local/` shown here is only the default.  Use the\n`configure` script to select a different prefix when installing libsyslog.\n\nFor GNU autotools based projects, instead of issuing the `pkg-config`\ncommand manually, use the following in `configure.ac`:\n\n```sh\n# Check for required libraries\nPKG_CHECK_MODULES([syslog], [libsyslog \u003e= 2.0])\n```\n\nand for your \"proggy\" in `Makefile.am`:\n\n```sh\nproggy_CFLAGS = $(syslog_CFLAGS)\nproggy_LDADD  = $(syslog_LIBS)\n```\n\nThe distribution comes with an [example][] program that utilizes the\nNetBSD API and links against libsyslog.\n\n\nBuild \u0026 Install\n---------------\n\nThe GNU Configure \u0026 Build system use `/usr/local` as the default install\nprefix.  In many cases this is useful, but this means the configuration\nfiles and cache files will also use that same prefix.  Most users have\ncome to expect those files in `/etc/` and `/var/run/` and configure has\na few useful options that are recommended to use:\n\n```sh\n./configure --prefix=/usr --sysconfdir=/etc --runstatedir=/run\nmake -j5\nsudo make install-strip\n```\n\nYou may want to remove the `--prefix=/usr` option.  Most users prefer\nnon-distro binaries in `/usr/local` or `/opt`.\n\n\u003e **Note:** the `--runstatedir` option should point to a filesystem\n\u003e           that is cleaned at reboot.  syslogd relies on this for\n\u003e           its `syslogd.cache` file, which keeps track of the last\n\u003e           read kernel log message from `/dev/kmsg`.\n\n\nBuilding from GIT\n-----------------\n\nIf you want to contribute, or just try out the latest but unreleased\nfeatures, then you need to know a few things about the [GNU build\nsystem][buildsystem]:\n\n- `configure.ac` and a per-directory `Makefile.am` are key files\n- `configure` and `Makefile.in` are generated from `autogen.sh`,\n  they are not stored in GIT but automatically generated for the\n  release tarballs\n- `Makefile` is generated by `configure` script\n\nTo build from GIT you first need to clone the repository and run the\n`autogen.sh` script.  This requires `automake` and `autoconf` to be\ninstalled on your system.\n\n```sh\ngit clone https://github.com/troglobit/sysklogd.git\ncd sysklogd/\n./autogen.sh\n./configure \u0026\u0026 make\n```\n\nGIT sources are a moving target and are not recommended for production\nsystems, unless you know what you are doing!\n\n**Note:** some systems may have an older, or a vanilla, version of the\n  GNU autoconf package that does not support `--runstatedir` (above).\n  Users on such systems are recommended to use `--localstatedir`, the\n  `$runstatedir` used by sysklogd is derived from that if missing.\n\n\nOrigin \u0026 References\n-------------------\n\nThis is the continuation of the original sysklogd by Dr. G.W. Wettstein\nand [Martin Schulze][].  Currently maintained, and almost completely\nrewritten by [Joachim Wiberg][], who spliced in fresh DNA strands from\nthe NetBSD and FreeBSD projects.  Much of the code base is NetBSD, but\nthe command line interface is FreeBSD.\n\n\u003e **Note:** the project name remains `sysklogd`, which was a combination\n\u003e of the names of the two main daemons, `syslogd` and `klogd`.  However,\n\u003e since v2.0 `klogd` no longer exists, kernel logging is now native to\n\u003e `syslogd`.\n\nThe project was previously licensed under the GNU GPL, but since the\nremoval of `klogd`, man pages, and resync with the BSDs the project is\nnow [3-clause BSD][BSD License] licensed.\n\n[RFC3164]:          https://tools.ietf.org/html/rfc3164\n[RFC5424]:          https://tools.ietf.org/html/rfc5424\n[Martin Schulze]:   http://www.infodrom.org/projects/sysklogd/\n[Joachim Wiberg]:   https://troglobit.com\n[Finit]:            https://github.com/troglobit/finit\n[Home]:             https://github.com/troglobit/sysklogd\n[example]:          https://github.com/troglobit/sysklogd/tree/master/example\n[buildsystem]:      https://airs.com/ian/configure/\n[BSD License]:      https://en.wikipedia.org/wiki/BSD_licenses\n[BSD Badge]:        https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n[GitHub]:           https://github.com/troglobit/sysklogd/actions/workflows/build.yml/\n[GitHub Status]:    https://github.com/troglobit/sysklogd/actions/workflows/build.yml/badge.svg\n[Coverity Scan]:    https://scan.coverity.com/projects/19540\n[Coverity Status]:  https://scan.coverity.com/projects/19540/badge.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Fsysklogd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftroglobit%2Fsysklogd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Fsysklogd/lists"}