forked from mirror/gorm
fix logger path bug (#5836)
This commit is contained in:
parent
fb640cf7da
commit
871f1de6b9
|
@ -3,8 +3,8 @@ package utils
|
||||||
import (
|
import (
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -16,7 +16,18 @@ var gormSourceDir string
|
||||||
func init() {
|
func init() {
|
||||||
_, file, _, _ := runtime.Caller(0)
|
_, file, _, _ := runtime.Caller(0)
|
||||||
// compatible solution to get gorm source directory with various operating systems
|
// compatible solution to get gorm source directory with various operating systems
|
||||||
gormSourceDir = regexp.MustCompile(`gorm.utils.utils\.go`).ReplaceAllString(file, "")
|
gormSourceDir = sourceDir(file)
|
||||||
|
}
|
||||||
|
|
||||||
|
func sourceDir(file string) string {
|
||||||
|
dir := filepath.Dir(file)
|
||||||
|
dir = filepath.Dir(dir)
|
||||||
|
|
||||||
|
s := filepath.Dir(dir)
|
||||||
|
if filepath.Base(s) != "gorm.io" {
|
||||||
|
s = dir
|
||||||
|
}
|
||||||
|
return s + string(filepath.Separator)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FileWithLineNum return the file name and line number of the current file
|
// FileWithLineNum return the file name and line number of the current file
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestSourceDir(t *testing.T) {
|
||||||
|
cases := []struct {
|
||||||
|
file string
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
file: "/Users/name/go/pkg/mod/gorm.io/gorm@v1.2.3/utils/utils.go",
|
||||||
|
want: "/Users/name/go/pkg/mod/gorm.io/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: "/go/work/proj/gorm/utils/utils.go",
|
||||||
|
want: "/go/work/proj/gorm/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: "/go/work/proj/gorm_alias/utils/utils.go",
|
||||||
|
want: "/go/work/proj/gorm_alias/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: "/go/work/proj/my.gorm.io/gorm@v1.2.3/utils/utils.go",
|
||||||
|
want: "/go/work/proj/my.gorm.io/gorm@v1.2.3/",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, c := range cases {
|
||||||
|
s := sourceDir(c.file)
|
||||||
|
if s != c.want {
|
||||||
|
t.Fatalf("%s: expected %s, got %s", c.file, c.want, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestSourceDir(t *testing.T) {
|
||||||
|
cases := []struct {
|
||||||
|
file string
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
file: `C:\Users\name\go\pkg\mod\gorm.io\gorm@v1.20.8\utils\utils.go`,
|
||||||
|
want: `C:\Users\name\go\pkg\mod\gorm.io`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: `C:\go\work\proj\gorm\utils\utils.go`,
|
||||||
|
want: `C:\go\work\proj\gorm`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: `C:\go\work\proj\gorm_alias\utils\utils.go`,
|
||||||
|
want: `C:\go\work\proj\gorm_alias`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: `C:\go\work\proj\my.gorm.io\gorm\utils\utils.go`,
|
||||||
|
want: `C:\go\work\proj\my.gorm.io\gorm`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, c := range cases {
|
||||||
|
s := sourceDir(c.file)
|
||||||
|
if s != c.want {
|
||||||
|
t.Fatalf("%s: expected %s, got %s", c.file, c.want, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue