]> Cypherpunks.ru repositories - govpn.git/blob - logger.go
Raise copyright years
[govpn.git] / logger.go
1 /*
2 GoVPN -- simple secure free software virtual private network daemon
3 Copyright (C) 2014-2020 Sergey Matveev <stargrave@stargrave.org>
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, version 3 of the License.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 package govpn
19
20 import (
21         "log"
22         "log/syslog"
23 )
24
25 var (
26         sysloger *log.Logger
27 )
28
29 // Enable logging to syslog, instead of default stdout log.
30 func SyslogEnable() {
31         var err error
32         sysloger, err = syslog.NewLogger(syslog.LOG_INFO, 0)
33         if err != nil {
34                 log.Fatalln(err)
35         }
36 }
37
38 // Call either syslog-related logger.Printf if SyslogEnabled,
39 // default log.Printf otherwise.
40 func Printf(f string, v ...interface{}) {
41         if sysloger == nil {
42                 log.Printf(f, v...)
43         } else {
44                 sysloger.Printf(f, v...)
45         }
46 }
47
48 // Call both default log.Printf and syslog-related one.
49 func BothPrintf(f string, v ...interface{}) {
50         log.Printf(f, v...)
51         if sysloger != nil {
52                 sysloger.Printf(f, v...)
53         }
54 }