blob: a3ee2598e8a8c626fcf1001eefa4b91cea10898c (
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/usr/bin/env bash
_ak_log_print_log_line(){
if [ -n "$1" ]
then
timestamp="$(echo "$*" | awk '{print $1}')"
program="$(echo "$*" | awk '{print $2}')"
messagetype="$(echo "$*" | awk '{print $3}')"
message="$(echo "$*" | cut -d ' ' -f4-)"
printf '%s \033[1;32m%s\033[0;00m \033[1;31m%s\033[0;00m %s\n' \
"$(date --date=@$timestamp +%Y%m%d_%H%M%S 2>/dev/null || date -r $timestamp +%Y%m%d_%H%M%S 2>/dev/null)" \
"$program" \
"$messagetype" \
"$message"
fi
}
_ak_log_follow(){
tail -f $AK_LOGSFILE | while read -r p || [ -n "$p" ]
do
_ak_log_print_log_line "$p"
done
}
_ak_log_grep(){
if [ ! -z $1 ] && [ -n "$1" ]
then
if [ "$1" == "-h" ] || [ "$1" == "--help" ]
then
description
echo "Launch with no arguments and select from the menu that will appear"
exit 1
fi
fi
echo "The following scripts have entries in the log file."
echo "Select one of those by entering the number of it below and hit enter:"
select x in $(cat $AK_LOGSFILE | cut -d ' ' -f 2 | sort | uniq)
do
grep $x $AK_LOGSFILE | while read line
do
_ak_log_print_log_line "$line"
done
break
done
}
_ak_log_rotate(){
if [ -f $AK_LOGSFILE ]
then
tar cvfz $AK_ARCHIVESDIR/logs_$(date -u +%s).tar.gz $AK_WORKDIR/logs
cat /dev/null > $AK_WORKDIR/logs
fi
if [ -f $AK_WORKDIR/akd.log ]
then
tar cvfz $AK_ARCHIVESDIR/akd-logs_$(date -u +%s).tar.gz $AK_WORKDIR/akd.log
cat /dev/null > $AK_WORKDIR/akd.log
fi
}
_ak_log_message(){
TS="$(date -u +%s)"
if [ ! -z $1 ] && [ -n "$1" ]
then
if [ ! -z "$2" ] && [ -n "$2" ]
then
if [ ! -z "$3" ] && [ -n "$3" ]
then
msg="$(echo -n $*| cut -d ' ' -f 3-)"
echo "$TS" "<$1>" "[$2]" "$msg" >> $AK_LOGSFILE
if [ ! -z $AK_DEBUG ] && [ -n "$AK_DEBUG" ] && [ "$AK_DEBUG" == "yes" ]
then
_ak_log_print_log_line "$TS <$1> [$2] $msg" >&2
fi
else
echo "$TS" "<$1>" "[ERROR]" "No message" >> $AK_LOGSFILE
if [ "$AK_DEBUG" == "yes" ]
then
echo "$TS" "<$1>" "[ERROR]" "No message" >&2
fi
exit 1
fi
else
echo "$TS" "<$1>" "[ERROR]" "No type and message" >> $AK_LOGSFILE
if [ "$AK_DEBUG" == "yes" ]
then
echo "$TS" "<$1>" "[ERROR]" "No type and message" >&2
fi
exit 1
fi
else
echo "$TS" "<$(basename $0)>" "[ERROR]" "No arguments given" >> $AK_LOGSFILE
if [ "$AK_DEBUG" == "yes" ]
then
echo "$TS" "<$(basename $0)>" "[ERROR]" "No arguments given" >&2
fi
exit 1
fi
}
_ak_log_exit(){
_ak_log_message "$PROGRAM" "EXIT" "$1"
}
_ak_log_warning(){
_ak_log_message "$PROGRAM" "WARNING" "$1"
}
_ak_log_debug(){
_ak_log_message "$PROGRAM" "DEBUG" "$1"
}
_ak_log_error(){
_ak_log_message "$PROGRAM" "ERROR" "$1"
}
_ak_log_info(){
_ak_log_message "$PROGRAM" "INFO" "$1"
}
# vim: set syntax=bash
|