File: plugin.conf

package info (click to toggle)
syslog-ng 4.8.1-5
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 20,440 kB
  • sloc: ansic: 177,631; python: 13,035; cpp: 11,611; makefile: 7,011; sh: 5,147; java: 3,651; xml: 3,344; yacc: 1,377; lex: 599; perl: 193; awk: 190; objc: 162
file content (84 lines) | stat: -rw-r--r-- 3,022 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#############################################################################
# Copyright (c) 2023 Hofi <hofione@gmail.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 as published
# by the Free Software Foundation, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# As an additional exemption you are allowed to compile & link against the
# OpenSSL libraries as published by the OpenSSL project. See the file
# COPYING for details.
#
#############################################################################

# NOTE: For predicate hints see:
#						log help predicates
@define def-osl-predicate "    (eventType == 'logEvent' || eventType == 'lossEvent' || eventType == 'stateEvent' || eventType == 'userActionEvent')
													  && (logType != 'debug')
													"
@define def-osl-stream-params "--type log --type trace --level info --level debug"

block source darwin-oslog(...) {
@requires darwinosl "The darwinosl() source driver depends on the darwinosl module"
	darwinosl(
		filter-predicate("`def-osl-predicate`")
		`__VARARGS__`
		flags(syslog-protocol dont-store-legacy-msghdr assume-utf8)
	);
};

# NOTE: There is no public API call to query the live log stream, so we are just capturing output of /usr/bin/log
block source darwin-oslog-stream(params("`def-osl-stream-params`")) {
	channel {
		source {
			program(
				"/usr/bin/log stream `params` --style ndjson"
				flags(
					no-parse
					no-multi-line
					dont-store-legacy-msghdr
					assume-utf8
				)
			);
		};

		parser {
			json-parser(
				prefix(".darwinoslog.")
			);
			date-parser(
				format("%Y-%m-%d %T.%f%z")
				template("${.darwinoslog.timestamp}")
			);
		    add-contextual-data(
				selector("${.darwinoslog.messageType}"),
				database("`scl-root`/darwinosl/darwinosl-metadata-db.csv"),
				default-selector("unknown"),
				prefix(".darwinoslog.")
			);
		};

		rewrite {
			set("$(if ('$(strip ${.darwinoslog.processImagePath})' != '') '$(basename ${.darwinoslog.processImagePath})' '')", value("PROGRAM"));
			subst(
				" ",
				"\\0x20",
				value("PROGRAM"),
				flags("global")
			);
			set-pri("${.darwinoslog.unixpri}");
			set("${.darwinoslog.processID}", value("PID"));
			set("${.darwinoslog.activityIdentifier}$(if ('${.darwinoslog.subsystem}' != '') ' (${.darwinoslog.subsystem})' '')$(if ('${.darwinoslog.category}' != '') ' [${.darwinoslog.category}]' '') ${.darwinoslog.eventMessage}", value("MSG"));
			set("local+darwinoslog_stream" value("TRANSPORT"));
		};
	};
};