summaryrefslogtreecommitdiffstats
path: root/lib/zlog_targets.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* lib, zebra: add missing extern "C" {} blocks to new header filesRenato Westphal2020-04-231-0/+8
| | | | Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* lib/log: re-add log filteringDavid Lamparter2020-04-011-0/+6
| | | | | | | | This is most of the old code bolted on top of the new "backend" infrastructure. It just wraps around zlog_fd() with the string search. Originally-by: Stephen Worley <sworley@cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@diac24.net>
* lib: rewrite zlog lock-free & TLS-bufferedDavid Lamparter2020-04-011-0/+60
This is a full rewrite of the "back end" logging code. It now uses a lock-free list to iterate over logging targets, and the targets themselves are as lock-free as possible. (syslog() may have a hidden internal mutex in the C library; the file/fd targets use a single write() call which should ensure atomicity kernel-side.) Note that some functionality is lost in this patch: - Solaris printstack() backtraces are ditched (unlikely to come back) - the `log-filter` machinery is gone (re-added in followup commit) - `terminal monitor` is temporarily stubbed out. The old code had a race condition with VTYs going away. It'll likely come back rewritten and with vtysh support. - The `zebra_ext_log` hook is gone. Instead, it's now much easier to add a "proper" logging target. v2: TLS buffer to get some actual performance Signed-off-by: David Lamparter <equinox@diac24.net>