]> 127.0.0.1 Git - part/.git/commitdiff
97
authorqydysky <qydysky@foxmail.com>
Mon, 28 Dec 2020 15:10:00 +0000 (23:10 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 28 Dec 2020 15:10:00 +0000 (23:10 +0800)
log/Log.go
log/Log_test.go

index 3aaf889bf6fa10192d185ba250786d225614ef82..521eae3a2a8e4125863a312b1e058acb0152f5cf 100644 (file)
@@ -21,6 +21,7 @@ type Log_interface struct {
 
 type Config struct {
     File string
+    Stdout bool
     Prefix_string map[string]struct{}
     Base_string []interface{}
 }
@@ -47,7 +48,8 @@ func New(c Config) (o *Log_interface) {
             return false
         },
         `L`:func(data interface{})(bool){
-            var showObj = []io.Writer{os.Stdout}
+            var showObj = []io.Writer{}
+            if o.Stdout {showObj = append(showObj, os.Stdout)} 
             if o.File != `` {
                 file, err := os.OpenFile(o.File, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
                 if err == nil {
@@ -67,7 +69,7 @@ func New(c Config) (o *Log_interface) {
         for i {
             select {
             case <-b:i = false
-            case <-time.After(time.Duration(10)*time.Millisecond):o.MQ.Push_tag(`block`,b)
+            case <-time.After(time.Duration(20)*time.Millisecond):o.MQ.Push_tag(`block`,b)
             }
         }
     }    
@@ -75,24 +77,30 @@ func New(c Config) (o *Log_interface) {
 }
 
 //
-func copy(i *Log_interface)(o *Log_interface){
+func Copy(i *Log_interface)(o *Log_interface){
     o = New((*i).Config)
     return
 }
 
 //Level 设置之后日志等级
 func (I *Log_interface) Level(log map[string]struct{}) (O *Log_interface) {
-    O = copy(I)
+    O = Copy(I)
     for k,_ := range O.Prefix_string {
         if _,ok := log[k];!ok{delete(O.Prefix_string,k)}
     }
     return
 }
 
+//Open 日志不显示
+func (I *Log_interface) Log_show_control(show bool) (O *Log_interface) {
+    O=I
+    O.Stdout = show
+    return
+}
 
 //Open 日志输出至文件
 func (I *Log_interface) Log_to_file(fileP string) (O *Log_interface) {
-    O=copy(I)
+    O=I
     O.File = fileP
     if O.File != `` {p.File().NewPath(O.File)}
     return
@@ -113,12 +121,12 @@ func (I *Log_interface) Block(timeout int) (O *Log_interface) {
 //日志等级
 //Base 追加到后续输出
 func (I *Log_interface) Base(i ...interface{}) (O *Log_interface) {
-    O=copy(I)
+    O=Copy(I)
     O.Base_string = i
     return
 }
 func (I *Log_interface) Base_add(i ...interface{}) (O *Log_interface) {
-    O=copy(I)
+    O=Copy(I)
     O.Base_string = append(O.Base_string, i...)
     return
 }
index 91833f44908f463febba3a801bce2aba25503268..157fe494b97a1022d7258fdb40f2a0fde7fd42c7 100644 (file)
@@ -11,10 +11,11 @@ type test_item struct {
 func Test_1(t *testing.T) {
     n := New(Config{
         File:`1.log`,
+        Stdout:true,
         Prefix_string:map[string]struct{}{`T:`:On,`I:`:On,`W:`:On,`E:`:On},
     })
 
-    n.L(`T:`,`s`).L(`I:`,`s`)
+    n.L(`T:`,`s`).L(`I:`,`s`).Block(1000)
     n.Log_to_file(`2.log`).L(`W:`,`s`).L(`E:`,`s`)
 
     {