v0.1.2
This commit is contained in:
parent
ebd4c3101d
commit
606f275c03
|
@ -1 +1,2 @@
|
|||
*.sqlite3
|
||||
*.sqlite3
|
||||
*.err
|
5
errDS.go
5
errDS.go
|
@ -37,7 +37,7 @@ func InitDS(ds *gorm.DB) *Err {
|
|||
|
||||
//Произвести запись в датасторе
|
||||
// 0.1.0
|
||||
func __storeDS(e *Err) *Err {
|
||||
func storeDS(e *Err) *Err {
|
||||
if errDS == nil {
|
||||
return e
|
||||
}
|
||||
|
@ -88,8 +88,7 @@ func DSList(from, count int, filter ...string) *ErrRecs {
|
|||
if e := tx.Count(&rsp.Total).Error; e != nil {
|
||||
RaiseError(ErrDSError, e.Error())
|
||||
}
|
||||
tx = tx.Offset(from).Limit(count)
|
||||
if e := tx.Find(&rsp.Items).Error; e != nil {
|
||||
if e := tx.Offset(from).Limit(count).Find(&rsp.Items).Error; e != nil {
|
||||
RaiseError(ErrDSError, e.Error())
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package errs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
var errFS *os.File = nil
|
||||
|
||||
func InitFS(f *os.File) *Err {
|
||||
errFS = f
|
||||
return nil
|
||||
}
|
||||
|
||||
func storeFS(err *Err) {
|
||||
if errFS == nil {
|
||||
return
|
||||
}
|
||||
if _, e := errFS.WriteString(err.getString() + "\n"); e != nil {
|
||||
fmt.Fprintln(os.Stderr, "Error write to file: "+e.Error())
|
||||
}
|
||||
}
|
37
errs.go
37
errs.go
|
@ -11,7 +11,7 @@ import (
|
|||
type ErrCode string
|
||||
|
||||
var Silent = false
|
||||
var StrFmt = "%date% %time% [%code%] %error% at %file%:%line% %func%"
|
||||
var StrFmt = "[ERROR] %date% %time% [%code%] %error% at %file%:%line% %func%"
|
||||
var Trace = false
|
||||
|
||||
const (
|
||||
|
@ -20,7 +20,7 @@ const (
|
|||
ErrDSError ErrCode = "ErrDSError"
|
||||
)
|
||||
|
||||
type __src struct {
|
||||
type src struct {
|
||||
File string
|
||||
Line int
|
||||
Func string
|
||||
|
@ -32,7 +32,7 @@ type Err struct {
|
|||
dsId int64
|
||||
Code ErrCode
|
||||
Msg string
|
||||
src __src
|
||||
src src
|
||||
Prev *Err
|
||||
}
|
||||
|
||||
|
@ -51,11 +51,11 @@ func RaiseError(eCode ErrCode, msg string) *Err {
|
|||
e := &Err{
|
||||
Code: eCode,
|
||||
Msg: msg,
|
||||
src: __getSrc(2),
|
||||
src: getSrc(2),
|
||||
Prev: nil,
|
||||
}
|
||||
e = __storeDS(e)
|
||||
__logError(e)
|
||||
e = storeDS(e)
|
||||
logError(e)
|
||||
return e
|
||||
}
|
||||
|
||||
|
@ -65,12 +65,12 @@ func UpError(err *Err) *Err {
|
|||
e := &Err{
|
||||
Code: err.Code,
|
||||
Msg: err.Msg,
|
||||
src: __getSrc(2),
|
||||
src: getSrc(2),
|
||||
Prev: err,
|
||||
}
|
||||
e = __storeDS(e)
|
||||
e = storeDS(e)
|
||||
if Trace {
|
||||
__logError(e)
|
||||
logError(e)
|
||||
}
|
||||
return e
|
||||
}
|
||||
|
@ -81,24 +81,24 @@ func Error(e error) *Err {
|
|||
err := &Err{
|
||||
Code: ErrError,
|
||||
Msg: e.Error(),
|
||||
src: __getSrc(2),
|
||||
src: getSrc(2),
|
||||
Prev: nil,
|
||||
}
|
||||
err = __storeDS(err)
|
||||
__logError(err)
|
||||
err = storeDS(err)
|
||||
logError(err)
|
||||
return err
|
||||
}
|
||||
|
||||
//Получить источник
|
||||
// 0.1.0
|
||||
func __getSrc(lvl int) (s __src) {
|
||||
func getSrc(lvl int) (s src) {
|
||||
pc, file, line, ok := runtime.Caller(lvl)
|
||||
if !ok {
|
||||
return __src{File: "undefined", Line: 0, Func: "undefined()"}
|
||||
return src{File: "undefined", Line: 0, Func: "undefined()"}
|
||||
}
|
||||
f := runtime.CallersFrames([]uintptr{pc})
|
||||
ff, _ := f.Next()
|
||||
s = __src{
|
||||
s = src{
|
||||
File: file,
|
||||
Line: line,
|
||||
Func: ff.Function,
|
||||
|
@ -108,7 +108,7 @@ func __getSrc(lvl int) (s __src) {
|
|||
|
||||
//Получить строку по формату
|
||||
// 0.1.0
|
||||
func (e *Err) __getString() string {
|
||||
func (e *Err) getString() string {
|
||||
if e == nil {
|
||||
panic("Err is NIL")
|
||||
}
|
||||
|
@ -123,9 +123,10 @@ func (e *Err) __getString() string {
|
|||
|
||||
//Вывести ошибку
|
||||
// 0.1.0
|
||||
func __logError(e *Err) {
|
||||
func logError(e *Err) {
|
||||
storeFS(e)
|
||||
if Silent {
|
||||
return
|
||||
}
|
||||
fmt.Fprintln(os.Stderr, e.__getString())
|
||||
fmt.Fprintln(os.Stderr, e.getString())
|
||||
}
|
||||
|
|
11
errs_test.go
11
errs_test.go
|
@ -2,6 +2,7 @@ package errs
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"gorm.io/driver/sqlite"
|
||||
|
@ -19,6 +20,16 @@ func TestErrs(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
//< InitDS =
|
||||
//= InitFS >
|
||||
f, e := os.OpenFile("errs_test.err", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0664)
|
||||
if e != nil {
|
||||
t.Fatal(e)
|
||||
}
|
||||
err = InitFS(f)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
//< InitFS =
|
||||
|
||||
err = RaiseError(ErrError, "Some new error")
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue