mirror of
https://gitee.com/johng/gf.git
synced 2024-12-02 12:17:53 +08:00
add glog.Expose for glog; add Trim operation for glog.Logger.Write; fix issue in gjson.Remove for slice
This commit is contained in:
parent
55f5e6d7aa
commit
23d404f681
@ -108,7 +108,11 @@ func (j *Json) setValue(pattern string, value interface{}, removed bool) error {
|
|||||||
if len((*pointer).([]interface{})) > valn {
|
if len((*pointer).([]interface{})) > valn {
|
||||||
if removed && value == nil {
|
if removed && value == nil {
|
||||||
// 删除数据元素
|
// 删除数据元素
|
||||||
j.setPointerWithValue(pparent, array[i - 1], append((*pointer).([]interface{})[ : valn], (*pointer).([]interface{})[valn + 1 : ]...))
|
if pparent == nil {
|
||||||
|
*pointer = append((*pointer).([]interface{})[ : valn], (*pointer).([]interface{})[valn + 1 : ]...)
|
||||||
|
} else {
|
||||||
|
j.setPointerWithValue(pparent, array[i - 1], append((*pointer).([]interface{})[ : valn], (*pointer).([]interface{})[valn + 1 : ]...))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
(*pointer).([]interface{})[valn] = value
|
(*pointer).([]interface{})[valn] = value
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
// This Source Code Form is subject to the terms of the MIT License.
|
// This Source Code Form is subject to the terms of the MIT License.
|
||||||
// If a copy of the MIT was not distributed with this file,
|
// If a copy of the MIT was not distributed with this file,
|
||||||
// You can obtain one at https://github.com/gogf/gf.
|
// You can obtain one at https://github.com/gogf/gf.
|
||||||
//
|
|
||||||
// @author john, zseeker
|
|
||||||
|
|
||||||
// Package glog implements powerful and easy-to-use levelled logging functionality.
|
// Package glog implements powerful and easy-to-use levelled logging functionality.
|
||||||
package glog
|
package glog
|
||||||
|
@ -10,6 +10,11 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Expose returns the default logger of glog.
|
||||||
|
func Expose() *Logger {
|
||||||
|
return logger
|
||||||
|
}
|
||||||
|
|
||||||
// To is a chaining function,
|
// To is a chaining function,
|
||||||
// which redirects current logging content output to the sepecified <writer>.
|
// which redirects current logging content output to the sepecified <writer>.
|
||||||
func To(writer io.Writer) *Logger {
|
func To(writer io.Writer) *Logger {
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
|
|
||||||
package glog
|
package glog
|
||||||
|
|
||||||
|
import "bytes"
|
||||||
|
|
||||||
// Write implements the io.Writer interface.
|
// Write implements the io.Writer interface.
|
||||||
// It just prints the content using Print.
|
// It just prints the content using Print.
|
||||||
func (l *Logger) Write(p []byte) (n int, err error) {
|
func (l *Logger) Write(p []byte) (n int, err error) {
|
||||||
l.Header(false).Print(string(p))
|
l.Header(false).Print(string(bytes.TrimRight(p, "\r\n")))
|
||||||
return len(p), nil
|
return len(p), nil
|
||||||
}
|
}
|
@ -241,9 +241,6 @@ func Int64(i interface{}) int64 {
|
|||||||
if i == nil {
|
if i == nil {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
if v, ok := i.(int64); ok {
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
switch value := i.(type) {
|
switch value := i.(type) {
|
||||||
case int: return int64(value)
|
case int: return int64(value)
|
||||||
case int8: return int64(value)
|
case int8: return int64(value)
|
||||||
|
@ -24,5 +24,7 @@ func main() {
|
|||||||
glog.SetWriter(&MyWriter{
|
glog.SetWriter(&MyWriter{
|
||||||
logger: glog.New(),
|
logger: glog.New(),
|
||||||
})
|
})
|
||||||
|
glog.Debug("DEBUG")
|
||||||
glog.Fatal("FATAL ERROR")
|
glog.Fatal("FATAL ERROR")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/gogf/gf/g/container/garray"
|
"github.com/gogf/gf/g/encoding/gjson"
|
||||||
"github.com/gogf/gf/g/test/gtest"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
a1:=[]string{"a", "d", "c","b"}
|
j := gjson.New(`[1,2,3]`)
|
||||||
|
j.Remove("1")
|
||||||
s1 :=garray.NewSortedStringArrayFromCopy(a1,true)
|
j.Dump()
|
||||||
|
|
||||||
gtest.Assert(s1.Slice(),[]string{"a", "b", "c","d"})
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user