add flush & read all chan data
Showing
5 changed files
with
34 additions
and
0 deletions
| ... | @@ -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 | } | ... | ... |
-
Please register or sign in to post a comment