From: qydysky Date: Fri, 25 Dec 2020 07:46:08 +0000 (+0800) Subject: 97 X-Git-Tag: 0.3.5~4 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=a39a85b8977d0adf3a0a36b1eaffd146b32edb2c;p=part%2F.git 97 --- diff --git a/log/Log.go b/log/Log.go index 82f3322..b2a6810 100644 --- a/log/Log.go +++ b/log/Log.go @@ -50,12 +50,28 @@ func New(c Config) (o *Log_interface) { return false }, `L`:func(data interface{})(bool){ - log.New(io.MultiWriter(data.(Msg_item).Show_obj...), - data.(Msg_item).Prefix, - log.Ldate|log.Ltime).Println(data.(Msg_item).Msg_obj...) + 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() + } + log.New(io.MultiWriter(tmp_data.Show_obj...), + tmp_data.Prefix, + log.Ldate|log.Ltime).Println(tmp_data.Msg_obj...) return false }, }) + {//启动阻塞 + b := make(chan struct{}) + i := true + for i { + select { + case <-b:i = false + case <-time.After(time.Duration(10)*time.Millisecond):o.MQ.Push_tag(`block`,b) + } + } + } return } @@ -114,10 +130,6 @@ func (I *Log_interface) L(prefix string, i ...interface{}) (O *Log_interface) { if _,ok := O.Prefix_string[prefix];!ok{return} var showObj = []io.Writer{os.Stdout} - if O.File_string != `` { - file, err := os.OpenFile(O.File_string, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) - if err != nil {O.L("Error: ","Failed to open log file:", err)}else{showObj = append(showObj, file)} - } O.MQ.Push_tag(`L`,Msg_item{ Prefix:prefix, Show_obj:showObj, diff --git a/log/Log_test.go b/log/Log_test.go index 29de68c..c879122 100644 --- a/log/Log_test.go +++ b/log/Log_test.go @@ -13,7 +13,6 @@ func Test_1(t *testing.T) { n := New(Config{ Prefix_string:map[string]struct{}{`T:`:On,`I:`:On,`W:`:On,`E:`:On}, }) - time.Sleep(time.Second) n.Log_to_file(`1.log`).L(`T:`,`s`).L(`I:`,`s`).L(`W:`,`s`).L(`E:`,`s`)