From: qydysky Date: Fri, 25 Dec 2020 14:23:44 +0000 (+0800) Subject: 97 X-Git-Tag: 0.3.5~3 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=1a031040ceff67cda9e2ec13281ad4a9623602e4;p=part%2F.git 97 --- diff --git a/log/Log.go b/log/Log.go index b2a6810..3aaf889 100644 --- a/log/Log.go +++ b/log/Log.go @@ -20,14 +20,13 @@ type Log_interface struct { } type Config struct { - File_string string + File string Prefix_string map[string]struct{} Base_string []interface{} } type Msg_item struct { Prefix string - Show_obj []io.Writer Msg_obj []interface{} } @@ -35,30 +34,30 @@ type Msg_item struct { func New(c Config) (o *Log_interface) { o = new(Log_interface) - o.Prefix_string = make(map[string]struct{}) - //设置log等级字符串 - for k,_ := range c.Prefix_string { - o.Prefix_string[k] = On - } + //设置 + o.Config = c + + if c.File != `` {p.File().NewPath(c.File)} o.MQ = m.New(10) - o.MQ.Pull_tag(map[string]func(interface{})(bool){ `block`:func(data interface{})(bool){ if v,ok := data.(chan struct{});ok{close(v)} return false }, `L`:func(data interface{})(bool){ - tmp_data := data.(Msg_item) - if o.File_string != `` { - file, err := os.OpenFile(o.File_string, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) - if err == nil {tmp_data.Show_obj = append(tmp_data.Show_obj, file)} - defer file.Close() + var showObj = []io.Writer{os.Stdout} + if o.File != `` { + file, err := os.OpenFile(o.File, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) + if err == nil { + showObj = append(showObj, file) + defer file.Close() + }else{log.Println(err)} } - log.New(io.MultiWriter(tmp_data.Show_obj...), - tmp_data.Prefix, - log.Ldate|log.Ltime).Println(tmp_data.Msg_obj...) + log.New(io.MultiWriter(showObj...), + data.(Msg_item).Prefix, + log.Ldate|log.Ltime).Println(data.(Msg_item).Msg_obj...) return false }, }) @@ -77,8 +76,7 @@ func New(c Config) (o *Log_interface) { // func copy(i *Log_interface)(o *Log_interface){ - t := *i - o = &t + o = New((*i).Config) return } @@ -94,10 +92,9 @@ func (I *Log_interface) Level(log map[string]struct{}) (O *Log_interface) { //Open 日志输出至文件 func (I *Log_interface) Log_to_file(fileP string) (O *Log_interface) { - O=I - O.File_string = fileP - if fileP == `` {return} - p.File().NewPath(fileP) + O=copy(I) + O.File = fileP + if O.File != `` {p.File().NewPath(O.File)} return } @@ -128,11 +125,9 @@ func (I *Log_interface) Base_add(i ...interface{}) (O *Log_interface) { func (I *Log_interface) L(prefix string, i ...interface{}) (O *Log_interface) { O=I if _,ok := O.Prefix_string[prefix];!ok{return} - var showObj = []io.Writer{os.Stdout} O.MQ.Push_tag(`L`,Msg_item{ Prefix:prefix, - Show_obj:showObj, Msg_obj:append(O.Base_string, i), }) return diff --git a/log/Log_test.go b/log/Log_test.go index c879122..91833f4 100644 --- a/log/Log_test.go +++ b/log/Log_test.go @@ -1,7 +1,6 @@ package part import ( - "time" "testing" ) @@ -11,10 +10,12 @@ type test_item struct { func Test_1(t *testing.T) { n := New(Config{ + File:`1.log`, Prefix_string:map[string]struct{}{`T:`:On,`I:`:On,`W:`:On,`E:`:On}, }) - n.Log_to_file(`1.log`).L(`T:`,`s`).L(`I:`,`s`).L(`W:`,`s`).L(`E:`,`s`) + n.L(`T:`,`s`).L(`I:`,`s`) + n.Log_to_file(`2.log`).L(`W:`,`s`).L(`E:`,`s`) { n1 := n.Base(`>1`)