restart xmpp server after error or ping-timeout
[svn42.git] / go / r3-netstatus / r3xmppbot / logging.go
1 // (c) Bernhard Tittelbach, 2013
2
3 package r3xmppbot
4
5 import "os"
6 import "log"
7 import "log/syslog"
8
9 type NullWriter struct {}
10 func (n *NullWriter) Write(p []byte) (int, error) {return len(p),nil}
11
12 var (
13     Syslog_ *log.Logger
14     Debug_ *log.Logger
15 )
16
17 func init() {
18     Syslog_ = log.New(&NullWriter{}, "", 0)
19     Debug_ = log.New(&NullWriter{}, "", 0)
20 }
21
22 func LogEnableSyslog() {
23     var logerr error
24     Syslog_, logerr = syslog.NewLogger(syslog.LOG_INFO | (18<<3), 0)
25     if logerr != nil { panic(logerr) }
26 }
27
28 func LogEnableDebuglog() {
29     Syslog_ = log.New(os.Stdout, "", log.LstdFlags)
30     Debug_ = log.New(os.Stderr, "DEBUG ", log.LstdFlags)
31 }
32
33 type XMPPLogger struct {
34 }
35
36 func (s *XMPPLogger) Log(v ...interface{}) {
37         Syslog_.Println(v...)
38 }
39
40 func (s *XMPPLogger) Logf(fmt string, v ...interface{}) {
41         Syslog_.Printf(fmt, v...)
42 }
43
44 type XMPPDebugLogger struct {
45 }
46
47 func (s *XMPPDebugLogger) Log(v ...interface{}) {
48         Debug_.Println(v...)
49 }
50
51 func (s *XMPPDebugLogger) Logf(fmt string, v ...interface{}) {
52         Debug_.Printf(fmt, v...)
53 }