pull/432/head
Darien Raymond 2017-04-10 23:48:23 +02:00
commit 056084defd
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 23 additions and 41 deletions

View File

@ -13,11 +13,11 @@ type LogEntry interface {
type ErrorLog struct { type ErrorLog struct {
Prefix string Prefix string
Values []interface{} Error error
} }
func (v *ErrorLog) String() string { func (v *ErrorLog) String() string {
return v.Prefix + serial.Concat(v.Values...) return v.Prefix + v.Error.Error()
} }
type AccessLog struct { type AccessLog struct {

View File

@ -51,54 +51,30 @@ func InitErrorLogger(file string) error {
return nil return nil
} }
// writeDebug outputs a debug log with given format and optional arguments. func getLoggerAndPrefix(s errors.Severity) (internal.LogWriter, string) {
func writeDebug(val ...interface{}) {
debugLogger.Log(&internal.ErrorLog{
Prefix: "[Debug]",
Values: val,
})
}
// writeInfo outputs an info log with given format and optional arguments.
func writeInfo(val ...interface{}) {
infoLogger.Log(&internal.ErrorLog{
Prefix: "[Info]",
Values: val,
})
}
// writeWarning outputs a warning log with given format and optional arguments.
func writeWarning(val ...interface{}) {
warningLogger.Log(&internal.ErrorLog{
Prefix: "[Warning]",
Values: val,
})
}
// writeError outputs an error log with given format and optional arguments.
func writeError(val ...interface{}) {
errorLogger.Log(&internal.ErrorLog{
Prefix: "[Error]",
Values: val,
})
}
func Trace(err error) {
s := errors.GetSeverity(err)
switch s { switch s {
case errors.SeverityDebug: case errors.SeverityDebug:
writeDebug(err) return debugLogger, "[Debug]"
case errors.SeverityInfo: case errors.SeverityInfo:
writeInfo(err) return infoLogger, "[Info]"
case errors.SeverityWarning: case errors.SeverityWarning:
writeWarning(err) return infoLogger, "[Warning]"
case errors.SeverityError: case errors.SeverityError:
writeError(err) return errorLogger, "[Error]"
default: default:
writeInfo(err) return infoLogger, "[Info]"
} }
} }
// Trace logs an error message based on its severity.
func Trace(err error) {
logger, prefix := getLoggerAndPrefix(errors.GetSeverity(err))
logger.Log(&internal.ErrorLog{
Prefix: prefix,
Error: err,
})
}
type Instance struct { type Instance struct {
config *Config config *Config
} }

View File

@ -7,6 +7,7 @@ import (
"v2ray.com/core/common/serial" "v2ray.com/core/common/serial"
) )
// Severity describes how severe the error is.
type Severity int type Severity int
const ( const (
@ -78,22 +79,27 @@ func (v *Error) Severity() Severity {
return v.severity return v.severity
} }
// AtDebug sets the severity to debug.
func (v *Error) AtDebug() *Error { func (v *Error) AtDebug() *Error {
return v.atSeverity(SeverityDebug) return v.atSeverity(SeverityDebug)
} }
// AtInfo sets the severity to info.
func (v *Error) AtInfo() *Error { func (v *Error) AtInfo() *Error {
return v.atSeverity(SeverityInfo) return v.atSeverity(SeverityInfo)
} }
// AtWarning sets the severity to warning.
func (v *Error) AtWarning() *Error { func (v *Error) AtWarning() *Error {
return v.atSeverity(SeverityWarning) return v.atSeverity(SeverityWarning)
} }
// AtError sets the severity to error.
func (v *Error) AtError() *Error { func (v *Error) AtError() *Error {
return v.atSeverity(SeverityError) return v.atSeverity(SeverityError)
} }
// Path sets the path to the location where this error happens.
func (v *Error) Path(path ...string) *Error { func (v *Error) Path(path ...string) *Error {
v.path = path v.path = path
return v return v