migrate to new severity def

pull/1713/head
Darien Raymond 2017-12-10 23:33:23 +01:00
parent 4146590d52
commit 742d9d25d1
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 24 additions and 31 deletions

View File

@ -9,6 +9,7 @@ import (
"v2ray.com/core/app/log/internal" "v2ray.com/core/app/log/internal"
"v2ray.com/core/common" "v2ray.com/core/common"
"v2ray.com/core/common/errors" "v2ray.com/core/common/errors"
"v2ray.com/core/common/log"
) )
var ( var (
@ -51,15 +52,15 @@ func InitErrorLogger(file string) error {
return nil return nil
} }
func getLoggerAndPrefix(s errors.Severity) (internal.LogWriter, string) { func getLoggerAndPrefix(s log.Severity) (internal.LogWriter, string) {
switch s { switch s {
case errors.SeverityDebug: case log.Severity_Debug:
return debugLogger, "[Debug]" return debugLogger, "[Debug]"
case errors.SeverityInfo: case log.Severity_Info:
return infoLogger, "[Info]" return infoLogger, "[Info]"
case errors.SeverityWarning: case log.Severity_Warning:
return warningLogger, "[Warning]" return warningLogger, "[Warning]"
case errors.SeverityError: case log.Severity_Error:
return errorLogger, "[Error]" return errorLogger, "[Error]"
default: default:
return infoLogger, "[Info]" return infoLogger, "[Info]"

View File

@ -4,33 +4,24 @@ package errors
import ( import (
"strings" "strings"
"v2ray.com/core/common/log"
"v2ray.com/core/common/serial" "v2ray.com/core/common/serial"
) )
// Severity describes how severe the error is.
type Severity int
const (
SeverityDebug Severity = iota
SeverityInfo
SeverityWarning
SeverityError
)
type hasInnerError interface { type hasInnerError interface {
// Inner returns the underlying error of this one. // Inner returns the underlying error of this one.
Inner() error Inner() error
} }
type hasSeverity interface { type hasSeverity interface {
Severity() Severity Severity() log.Severity
} }
// Error is an error object with underlying error. // Error is an error object with underlying error.
type Error struct { type Error struct {
message []interface{} message []interface{}
inner error inner error
severity Severity severity log.Severity
path []string path []string
} }
@ -59,19 +50,19 @@ func (v *Error) Base(err error) *Error {
return v return v
} }
func (v *Error) atSeverity(s Severity) *Error { func (v *Error) atSeverity(s log.Severity) *Error {
v.severity = s v.severity = s
return v return v
} }
func (v *Error) Severity() Severity { func (v *Error) Severity() log.Severity {
if v.inner == nil { if v.inner == nil {
return v.severity return v.severity
} }
if s, ok := v.inner.(hasSeverity); ok { if s, ok := v.inner.(hasSeverity); ok {
as := s.Severity() as := s.Severity()
if as > v.severity { if as < v.severity {
return as return as
} }
} }
@ -81,22 +72,22 @@ func (v *Error) Severity() Severity {
// AtDebug sets the severity to debug. // AtDebug sets the severity to debug.
func (v *Error) AtDebug() *Error { func (v *Error) AtDebug() *Error {
return v.atSeverity(SeverityDebug) return v.atSeverity(log.Severity_Debug)
} }
// AtInfo sets the severity to info. // AtInfo sets the severity to info.
func (v *Error) AtInfo() *Error { func (v *Error) AtInfo() *Error {
return v.atSeverity(SeverityInfo) return v.atSeverity(log.Severity_Info)
} }
// AtWarning sets the severity to warning. // AtWarning sets the severity to warning.
func (v *Error) AtWarning() *Error { func (v *Error) AtWarning() *Error {
return v.atSeverity(SeverityWarning) return v.atSeverity(log.Severity_Warning)
} }
// AtError sets the severity to error. // AtError sets the severity to error.
func (v *Error) AtError() *Error { func (v *Error) AtError() *Error {
return v.atSeverity(SeverityError) return v.atSeverity(log.Severity_Error)
} }
// Path sets the path to the location where this error happens. // Path sets the path to the location where this error happens.
@ -109,7 +100,7 @@ func (v *Error) Path(path ...string) *Error {
func New(msg ...interface{}) *Error { func New(msg ...interface{}) *Error {
return &Error{ return &Error{
message: msg, message: msg,
severity: SeverityInfo, severity: log.Severity_Info,
} }
} }
@ -128,9 +119,9 @@ func Cause(err error) error {
return err return err
} }
func GetSeverity(err error) Severity { func GetSeverity(err error) log.Severity {
if s, ok := err.(hasSeverity); ok { if s, ok := err.(hasSeverity); ok {
return s.Severity() return s.Severity()
} }
return SeverityInfo return log.Severity_Info
} }

View File

@ -5,6 +5,7 @@ import (
"testing" "testing"
. "v2ray.com/core/common/errors" . "v2ray.com/core/common/errors"
"v2ray.com/core/common/log"
. "v2ray.com/ext/assert" . "v2ray.com/ext/assert"
) )
@ -12,17 +13,17 @@ func TestError(t *testing.T) {
assert := With(t) assert := With(t)
err := New("TestError") err := New("TestError")
assert(GetSeverity(err), Equals, SeverityInfo) assert(GetSeverity(err), Equals, log.Severity_Info)
err = New("TestError2").Base(io.EOF) err = New("TestError2").Base(io.EOF)
assert(GetSeverity(err), Equals, SeverityInfo) assert(GetSeverity(err), Equals, log.Severity_Info)
err = New("TestError3").Base(io.EOF).AtWarning() err = New("TestError3").Base(io.EOF).AtWarning()
assert(GetSeverity(err), Equals, SeverityWarning) assert(GetSeverity(err), Equals, log.Severity_Warning)
err = New("TestError4").Base(io.EOF).AtWarning() err = New("TestError4").Base(io.EOF).AtWarning()
err = New("TestError5").Base(err) err = New("TestError5").Base(err)
assert(GetSeverity(err), Equals, SeverityWarning) assert(GetSeverity(err), Equals, log.Severity_Warning)
assert(err.Error(), HasSubstring, "EOF") assert(err.Error(), HasSubstring, "EOF")
} }