diff --git a/filePath.go b/filePath.go index 7bdcf4b..ec0adc6 100644 --- a/filePath.go +++ b/filePath.go @@ -17,13 +17,13 @@ func (l *Logger) nowFileName(event string) string { if l.channel != "" { timeDir = l.channel + "/" + timeDir } - path := l.option.dir + "/" + timeDir + "_"+event + ".log" + path := l.option.dir + "/" + timeDir + "_" + event + ".log" // fmt.Println(filepath.Abs(path)) return path } // 新建文件 -func (l *Logger) getFile(event string,isRefresh bool) (*os.File, error) { +func (l *Logger) getFile(event string, isRefresh bool) (*os.File, error) { f := l.loadFile(event) if f != nil && !isRefresh { return f, nil @@ -38,7 +38,7 @@ func (l *Logger) getFile(event string,isRefresh bool) (*os.File, error) { os.MkdirAll(dir, os.ModePerm) // 创建多层目录,如果存在不会报错 // 打开该文件,如果不存在则创建 - file, err := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) + file, err := os.OpenFile(fileName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) if err != nil { // 打开失败,尝试创建 fmt.Println("打开日志文件失败") diff --git a/format.go b/format.go index ae75bdc..a419fbd 100644 --- a/format.go +++ b/format.go @@ -30,13 +30,32 @@ func (l *Logger) logger(ctx context.Context, event string, v ...any) { traceId, _ := ctx.Value(l.option.traceField).(string) - writeStr := "[" + event + "]" + nowTime + " " + file + ":" + fmt.Sprintf("%d", line) + " " + funcName + " gid:" + getGID() + " " + traceId + " @data@: " + string(by) + "\n\n" + // writeStr := "[" + event + "]" + nowTime + " " + file + ":" + fmt.Sprintf("%d", line) + " " + funcName + " gid:" + getGID() + " " + traceId + " @data@: " + string(by) + "\n\n" - l.write(event, []byte(writeStr)) + fd := FormatData{ + Time: nowTime, + File: file + ":" + fmt.Sprintf("%d", line), + Func: funcName, + Gid: getGID(), + Content: string(by), + TraceId: traceId, + } + fdb, _ := json.Marshal(fd) + + l.write(event, fdb) if l.option.errorToInfo && event == "error" { - l.write("info", []byte(writeStr)) + l.write("info", fdb) } // log.Println("" + string(by)) } + +type FormatData struct { + Time string `json:"time,omitempty"` + File string `json:"file,omitempty"` + Func string `json:"func,omitempty"` + Gid string `json:"gid,omitempty"` + Content string `json:"content,omitempty"` + TraceId string `json:"traceId,omitempty"` +} diff --git a/loggerx_test.go b/loggerx_test.go index b6455b9..830e01c 100644 --- a/loggerx_test.go +++ b/loggerx_test.go @@ -17,9 +17,9 @@ func TestLogger(t *testing.T) { l.Error(context.Background(), "test error") - l.Channel("test").Error(context.Background(), "test error") + l.Channel("channel").Error(context.Background(), "test error") l.Info(context.Background(), "test info") - time.Sleep(time.Second * 2) + time.Sleep(time.Second * 5) } diff --git a/storage.go b/storage.go index f1aff5f..63d55a5 100644 --- a/storage.go +++ b/storage.go @@ -1,6 +1,8 @@ package loggerx -import "io" +import ( + "io" +) func (l *Logger) write(event string, b []byte) (n int, err error) { f, err := l.getFile(event, false) @@ -8,6 +10,16 @@ func (l *Logger) write(event string, b []byte) (n int, err error) { return 0, err } + // fmt.Println("write", string(b)) + // defer func() { + // fmt.Println(n, err) + // }() + + // 添加换行 + a := []byte("\n[" + event + "]") + + b = append(a, b...) + n, err = f.Write(b) if err == nil && n < len(b) { err = io.ErrShortWrite