| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | package internalimport (	"fmt"	"github.com/v2ray/v2ray-core/common"	"github.com/v2ray/v2ray-core/common/alloc"	"github.com/v2ray/v2ray-core/common/serial")type LogEntry interface {	common.Releasable	serial.String}type ErrorLog struct {	Prefix string	Values []interface{}}func (this *ErrorLog) Release() {	for index := range this.Values {		this.Values[index] = nil	}	this.Values = nil}func (this *ErrorLog) String() string {	b := alloc.NewSmallBuffer().Clear()	defer b.Release()	b.AppendString(this.Prefix)	for _, value := range this.Values {		switch typedVal := value.(type) {		case string:			b.AppendString(typedVal)		case *string:			b.AppendString(*typedVal)		case serial.String:			b.AppendString(typedVal.String())		case error:			b.AppendString(typedVal.Error())		default:			b.AppendString(fmt.Sprint(value))		}	}	return b.String()}type AccessLog struct {	From   serial.String	To     serial.String	Status string	Reason serial.String}func (this *AccessLog) Release() {	this.From = nil	this.To = nil	this.Reason = nil}func (this *AccessLog) String() string {	b := alloc.NewSmallBuffer().Clear()	defer b.Release()	return b.AppendString(this.From.String()).AppendString(" ").AppendString(this.Status).AppendString(" ").AppendString(this.To.String()).AppendString(" ").AppendString(this.Reason.String()).String()}
 |