summaryrefslogtreecommitdiffstats
path: root/contrib/logging.hook
blob: 82d0ed14b65b2fc4f31f1ddca765c11e66a23b42 (plain)
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
85
86
### Sample netcfg hook script for logging/debugging connections
### To install, make this executable and put it in /usr/lib/network/hooks


. /etc/rc.conf
. /etc/rc.d/functions


# if NETCFG_DEBUG is set, debugging messages go to stderr instead of syslog

# What facility to send log messages to? if set to "", nothing will be sent to syslog
NETCFG_LOG="${NETCFG_LOG-local0}"



function report_log {
    if [[ -n "$NETCFG_LOG" ]]; then
        local caller level="$1"
        shift
        case "$0" in
            net-auto|netcfg-auto-*) caller=net-auto;;
            net-profiles) caller=net-profiles;;
            net-rename) caller=net-rename;;
            *) caller=netcfg;;
        esac
        logger -p "${NETCFG_LOG}.$level" -t "$caller" -- "$*"
    fi
}


function report_err {
    report_log err "$*"
    printhl "$*"
}


function report_notice {
    report_log notice "$*"
    # print "$*" >&2
    checkyesno "$NETCFG_DEBUG" && echo "DEBUG: $*" >&2
}


function report_debug {
    if checkyesno "$NETCFG_DEBUG"; then
        echo "DEBUG: $*" >&2
    else
        report_log debug "$*"
    fi
}


function report_try {
    report_log notice "trying $*..."
    stat_busy "$*"
    REPORT_TRYING=1
}


function report_fail {
    if [[ -n "$*" ]]; then
        report_log err "$*"
        if [[ -n "$REPORT_TRYING" ]]; then
            stat_append "- $*"
            REPORT_TRYING=
            stat_fail
        else
            printhl "$*"
        fi
    elif [[ -n "$REPORT_TRYING" ]]; then
        REPORT_TRYING=
        stat_fail
    fi
}


function report_success {
    if [[ -n "$*" ]]; then
        stat_append "- $*"
        REPORT_TRYING=
    fi
    report_log notice "${*:-succeeded}"
    stat_done
}

# vim: ft=sh ts=4 et sw=4: