]> 127.0.0.1 Git - part/.git/commitdiff
97
authorqydysky <qydysky@foxmail.com>
Fri, 25 Dec 2020 14:23:44 +0000 (22:23 +0800)
committerqydysky <qydysky@foxmail.com>
Fri, 25 Dec 2020 14:23:44 +0000 (22:23 +0800)
log/Log.go
log/Log_test.go

index b2a68108b81038f5030dea77d96bdfe2cdb409f7..3aaf889bf6fa10192d185ba250786d225614ef82 100644 (file)
@@ -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
index c879122c0b85e0feceb6942d1b76e9ee69ba62f1..91833f44908f463febba3a801bce2aba25503268 100644 (file)
@@ -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`)