github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgLog/Log.go (about) 1 package kmgLog 2 3 import "github.com/bronze1man/kmg/kmgTime" 4 5 // 写一条log, category是分类名 data是需要调试的对象 6 // 实际格式,用户可以随意设定 7 // data 必须为可以json.Marshal的数据 8 // 错误处理方式为 输出到stderr (不用panic,是因为log坏了,程序应该还可以继续执行没那么重要,不忽略,是因为忽略错误后果更严重) 9 // 这个算是LogToRow的语法糖. 10 func Log(cat string, data ...interface{}) { 11 logRow := LogRow{ 12 Cat: cat, 13 Time: kmgTime.NowFromDefaultNower(), 14 Data: data, 15 //Data: make([]json.RawMessage, len(data)), 16 } 17 defaultWriter(logRow) 18 //defaultLogger(cat, data...) 19 } 20 21 func LogToRow(row LogRow) { 22 defaultWriter(row) 23 } 24 25 var defaultWriter LogWriter = StdoutLogWriter 26 27 /* 28 example: 29 kmgLog.SetLogWriter(kmgLog.StdoutLogWriter) 30 */ 31 func SetLogWriter(w LogWriter) { 32 defaultWriter = w 33 } 34 35 func SetDefaultThreadFileLog(logDir string) { 36 defaultWriter = ThreadLogWriter(NewFileLogWriter(logDir)) 37 } 38 39 func SetDefaultStdoutAndFileLog(logDir string) { 40 defaultWriter = ThreadLogWriter(MultiLogWriter(StdoutLogWriter, NewFileLogWriter(logDir))) 41 42 }