]> git.ipfire.org Git - people/stevee/network.git/blame - src/functions/functions.logging
Use autotools.
[people/stevee/network.git] / src / functions / functions.logging
CommitLineData
1848564d 1#!/bin/bash
1578dae9
MT
2###############################################################################
3# #
4# IPFire.org - A linux based firewall #
5# Copyright (C) 2010 Michael Tremer & Christian Schmidt #
6# #
7# This program is free software: you can redistribute it and/or modify #
8# it under the terms of the GNU General Public License as published by #
9# the Free Software Foundation, either version 3 of the License, or #
10# (at your option) any later version. #
11# #
12# This program is distributed in the hope that it will be useful, #
13# but WITHOUT ANY WARRANTY; without even the implied warranty of #
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15# GNU General Public License for more details. #
16# #
17# You should have received a copy of the GNU General Public License #
18# along with this program. If not, see <http://www.gnu.org/licenses/>. #
19# #
20###############################################################################
1848564d 21
8c63fa13
MT
22if [ -z "${LOG_FACILITY}" ]; then
23 LOG_FACILITY="network"
24fi
25
1848564d
MT
26LOG_LEVEL="DEBUG"
27
8c63fa13
MT
28if [ -z "${LOG_DISABLE_STDOUT}" ]; then
29 LOG_DISABLE_STDOUT=false
30fi
31
1848564d
MT
32function log() {
33 local level=${1}
34 shift
35 local message="$@"
5438b0c1 36 local message_log="${message}"
1848564d
MT
37
38 if [ -z "${DEBUG}" ] && [ "${level}" = "DEBUG" ]; then
39 return
40 fi
41
5438b0c1 42 local funcname="${FUNCNAME[1]}"
0f179d60 43 message_log="${funcname}: ${message_log}"
5438b0c1 44
1848564d
MT
45 # Set a prefix if we are in a hook.
46 if [ -n "${HOOK}" ]; then
5438b0c1 47 message_log="${HOOK}: ${message_log}"
1848564d
MT
48 fi
49
0f179d60 50 logger -t "${LOG_FACILITY}[$$]" "${message_log}" &
d847fa7c 51
8c63fa13
MT
52 # Leave here, when there should be no output on the console.
53 [ "${LOG_DISABLE_STDOUT}" = "true" ] && return 0
54
675d841d 55 local colour
c2002f46 56 local console="2"
d847fa7c 57 case "${level}" in
675d841d
MT
58 DEBUG)
59 colour="${CLR_CYAN_R}"
60 ;;
61 INFO)
c2002f46 62 console="1"
675d841d
MT
63 ;;
64 WARNING)
65 colour="${CLR_YELLOW_R}"
66 ;;
ab699251 67 CRITICAL|ERROR)
675d841d 68 colour="${CLR_RED_B}"
d847fa7c
MT
69 ;;
70 esac
71
c2002f46
MT
72 case "${console}" in
73 1)
4665dc30 74 printf "${colour}${message}${CLR_RESET}\n"
c2002f46
MT
75 ;;
76 2)
4665dc30 77 printf "${colour}${message}${CLR_RESET}\n" >&2
c2002f46
MT
78 ;;
79 esac
1848564d 80}