| 1234567891011121314151617181920212223242526272829303132333435363738 | package logimport (	"v2ray.com/core/app/log/internal")// AccessStatus is the status of an access request from clients.type AccessStatus stringconst (	AccessAccepted = AccessStatus("accepted")	AccessRejected = AccessStatus("rejected"))var (	accessLoggerInstance internal.LogWriter = new(internal.NoOpLogWriter))// InitAccessLogger initializes the access logger to write into the give file.func InitAccessLogger(file string) error {	logger, err := internal.NewFileLogWriter(file)	if err != nil {		Error("Failed to create access logger on file (", file, "): ", file, err)		return err	}	accessLoggerInstance = logger	return nil}// Access writes an access log.func Access(from, to interface{}, status AccessStatus, reason interface{}) {	accessLoggerInstance.Log(&internal.AccessLog{		From:   from,		To:     to,		Status: string(status),		Reason: reason,	})}
 |