#!/bin/sh
# devel.a0fs.net: zfsbackup.lib.log - v0.1 by awgur
# ---
# Файл содержит процедуры и функции организации логирования и обработки ошибок

sys_log () {
	# Процедура логирования, принимает аргументы logger, и всего лишь добавляет тег
	# к логам
	logger -t net.a0fs.zfsbackup "$@"
}

log_err () {
	# Организация логирования ошибок
	sys_log -p user.err "$@"
}

log () {
	# Логирование с уровнеи "Информация"
	sys_log -p user.info "$@"
}

log_n () {
	# Логирование с уровнем "Уведомление"
	sys_log -p user.notice "$@"
}

log_crit () {
	# Логирование критической ошибки, не дающей возможность продолжать процесс
	sys_log -p user.crit "$@"
}

err () {
	# Возбуждение исключения (выход из скрипта с выдачей сообщения в лог)
	# Аргументы:
	#   [ret_code]: Код возврата скрипта
	#   message:  Сообщение в журнал
	local code="$1"
	local msg="$2"

	if ! [ "$msg" ] ; then
		msg="$code"
		code=1
	fi

	log_crit "$msg"
	exit "$code"
}