%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /backups/router/usr/local/share/syslog-ng/include/scl/darwinosl/
Upload File :
Create Path :
Current File : //backups/router/usr/local/share/syslog-ng/include/scl/darwinosl/plugin.conf

#############################################################################
# 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"));
		};
	};
};

Zerion Mini Shell 1.0