Xray-core/features/feature.go
Kobe Arthur Scofield 1919a1e86f
Log: Improve feature deprecation/removal logs (#3793)
* Improve feature deprecation/removal logs

* Add a note about the new feature

* When the feature has removed, this should be an error not a warning
2024-09-12 10:38:17 -04:00

28 lines
1.1 KiB
Go

package features
import (
"context"
"github.com/xtls/xray-core/common"
"github.com/xtls/xray-core/common/errors"
)
//go:generate go run github.com/xtls/xray-core/common/errors/errorgen
// Feature is the interface for Xray features. All features must implement this interface.
// All existing features have an implementation in app directory. These features can be replaced by third-party ones.
type Feature interface {
common.HasType
common.Runnable
}
// PrintDeprecatedFeatureWarning prints a warning for deprecated feature.
func PrintDeprecatedFeatureWarning(feature string) {
errors.LogWarning(context.Background(), "You are using a deprecated feature: " + feature + ". Please update your config file(s) with latest configuration format, or update your client software.")
}
// PrintRemovedFeatureError prints an error message for removed feature. And after long enough time the message can also be removed, use as an indicator.
func PrintRemovedFeatureError(feature string) {
errors.New("The feature " + feature + " is removed. Please update your config file(s) according to release notes and documentations.")
}