ba5e393e by astaxie

add flush & read all chan data

1 parent 690d77e9
...@@ -65,6 +65,10 @@ func (c *ConnWriter) WriteMsg(msg string, level int) error { ...@@ -65,6 +65,10 @@ func (c *ConnWriter) WriteMsg(msg string, level int) error {
65 return nil 65 return nil
66 } 66 }
67 67
68 func (c *ConnWriter) Flush() {
69
70 }
71
68 func (c *ConnWriter) Destroy() { 72 func (c *ConnWriter) Destroy() {
69 if c.innerWriter == nil { 73 if c.innerWriter == nil {
70 return 74 return
......
...@@ -42,6 +42,10 @@ func (c *ConsoleWriter) Destroy() { ...@@ -42,6 +42,10 @@ func (c *ConsoleWriter) Destroy() {
42 42
43 } 43 }
44 44
45 func (c *ConsoleWriter) Flush() {
46
47 }
48
45 func init() { 49 func init() {
46 Register("console", NewConsole) 50 Register("console", NewConsole)
47 } 51 }
......
...@@ -237,6 +237,10 @@ func (w *FileLogWriter) Destroy() { ...@@ -237,6 +237,10 @@ func (w *FileLogWriter) Destroy() {
237 w.mw.fd.Close() 237 w.mw.fd.Close()
238 } 238 }
239 239
240 func (w *FileLogWriter) Flush() {
241 w.mw.fd.Sync()
242 }
243
240 func init() { 244 func init() {
241 Register("file", NewFileWriter) 245 Register("file", NewFileWriter)
242 } 246 }
......
...@@ -20,6 +20,7 @@ type LoggerInterface interface { ...@@ -20,6 +20,7 @@ type LoggerInterface interface {
20 Init(config string) error 20 Init(config string) error
21 WriteMsg(msg string, level int) error 21 WriteMsg(msg string, level int) error
22 Destroy() 22 Destroy()
23 Flush()
23 } 24 }
24 25
25 var adapters = make(map[string]loggerType) 26 var adapters = make(map[string]loggerType)
...@@ -140,8 +141,26 @@ func (bl *BeeLogger) Critical(format string, v ...interface{}) { ...@@ -140,8 +141,26 @@ func (bl *BeeLogger) Critical(format string, v ...interface{}) {
140 bl.writerMsg(LevelCritical, msg) 141 bl.writerMsg(LevelCritical, msg)
141 } 142 }
142 143
144 //flush all chan data
145 func (bl *BeeLogger) Flush() {
146 for _, l := range bl.outputs {
147 l.Flush()
148 }
149 }
150
143 func (bl *BeeLogger) Close() { 151 func (bl *BeeLogger) Close() {
152 for {
153 if len(bl.msg) > 0 {
154 bm := <-bl.msg
155 for _, l := range bl.outputs {
156 l.WriteMsg(bm.msg, bm.level)
157 }
158 } else {
159 break
160 }
161 }
144 for _, l := range bl.outputs { 162 for _, l := range bl.outputs {
163 l.Flush()
145 l.Destroy() 164 l.Destroy()
146 } 165 }
147 } 166 }
......
...@@ -92,6 +92,9 @@ func (s *SmtpWriter) WriteMsg(msg string, level int) error { ...@@ -92,6 +92,9 @@ func (s *SmtpWriter) WriteMsg(msg string, level int) error {
92 return err 92 return err
93 } 93 }
94 94
95 func (s *SmtpWriter) Flush() {
96 return
97 }
95 func (s *SmtpWriter) Destroy() { 98 func (s *SmtpWriter) Destroy() {
96 return 99 return
97 } 100 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!