daemon: Add clear logs

This commit is contained in:
世界
2025-10-22 23:26:05 +08:00
parent a930356b04
commit a5fb467db2
6 changed files with 100 additions and 42 deletions

View File

@@ -351,6 +351,11 @@ func (s *StartedService) GetDefaultLogLevel(ctx context.Context, empty *emptypb.
return &DefaultLogLevel{Level: LogLevel(logLevel)}, nil
}
func (s *StartedService) ClearLogs(ctx context.Context, empty *emptypb.Empty) (*emptypb.Empty, error) {
s.resetLogs()
return &emptypb.Empty{}, nil
}
func (s *StartedService) SubscribeStatus(request *SubscribeStatusRequest, server grpc.ServerStreamingServer[Status]) error {
interval := time.Duration(request.Interval)
if interval <= 0 {

View File

@@ -1746,13 +1746,14 @@ const file_daemon_started_service_proto_rawDesc = "" +
"\x10ConnectionSortBy\x12\b\n" +
"\x04DATE\x10\x00\x12\v\n" +
"\aTRAFFIC\x10\x01\x12\x11\n" +
"\rTOTAL_TRAFFIC\x10\x022\xf8\v\n" +
"\rTOTAL_TRAFFIC\x10\x022\xb7\f\n" +
"\x0eStartedService\x12=\n" +
"\vStopService\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12?\n" +
"\rReloadService\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12K\n" +
"\x16SubscribeServiceStatus\x12\x16.google.protobuf.Empty\x1a\x15.daemon.ServiceStatus\"\x000\x01\x127\n" +
"\fSubscribeLog\x12\x16.google.protobuf.Empty\x1a\v.daemon.Log\"\x000\x01\x12G\n" +
"\x12GetDefaultLogLevel\x12\x16.google.protobuf.Empty\x1a\x17.daemon.DefaultLogLevel\"\x00\x12E\n" +
"\x12GetDefaultLogLevel\x12\x16.google.protobuf.Empty\x1a\x17.daemon.DefaultLogLevel\"\x00\x12=\n" +
"\tClearLogs\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12E\n" +
"\x0fSubscribeStatus\x12\x1e.daemon.SubscribeStatusRequest\x1a\x0e.daemon.Status\"\x000\x01\x12=\n" +
"\x0fSubscribeGroups\x12\x16.google.protobuf.Empty\x1a\x0e.daemon.Groups\"\x000\x01\x12G\n" +
"\x12GetClashModeStatus\x12\x16.google.protobuf.Empty\x1a\x17.daemon.ClashModeStatus\"\x00\x12C\n" +
@@ -1835,45 +1836,47 @@ var file_daemon_started_service_proto_depIdxs = []int32{
27, // 12: daemon.StartedService.SubscribeServiceStatus:input_type -> google.protobuf.Empty
27, // 13: daemon.StartedService.SubscribeLog:input_type -> google.protobuf.Empty
27, // 14: daemon.StartedService.GetDefaultLogLevel:input_type -> google.protobuf.Empty
6, // 15: daemon.StartedService.SubscribeStatus:input_type -> daemon.SubscribeStatusRequest
27, // 16: daemon.StartedService.SubscribeGroups:input_type -> google.protobuf.Empty
27, // 17: daemon.StartedService.GetClashModeStatus:input_type -> google.protobuf.Empty
27, // 18: daemon.StartedService.SubscribeClashMode:input_type -> google.protobuf.Empty
16, // 19: daemon.StartedService.SetClashMode:input_type -> daemon.ClashMode
13, // 20: daemon.StartedService.URLTest:input_type -> daemon.URLTestRequest
14, // 21: daemon.StartedService.SelectOutbound:input_type -> daemon.SelectOutboundRequest
15, // 22: daemon.StartedService.SetGroupExpand:input_type -> daemon.SetGroupExpandRequest
27, // 23: daemon.StartedService.GetSystemProxyStatus:input_type -> google.protobuf.Empty
19, // 24: daemon.StartedService.SetSystemProxyEnabled:input_type -> daemon.SetSystemProxyEnabledRequest
20, // 25: daemon.StartedService.SubscribeConnections:input_type -> daemon.SubscribeConnectionsRequest
23, // 26: daemon.StartedService.CloseConnection:input_type -> daemon.CloseConnectionRequest
27, // 27: daemon.StartedService.CloseAllConnections:input_type -> google.protobuf.Empty
27, // 28: daemon.StartedService.GetDeprecatedWarnings:input_type -> google.protobuf.Empty
27, // 29: daemon.StartedService.SubscribeHelperEvents:input_type -> google.protobuf.Empty
28, // 30: daemon.StartedService.SendHelperResponse:input_type -> daemon.HelperResponse
27, // 31: daemon.StartedService.StopService:output_type -> google.protobuf.Empty
27, // 32: daemon.StartedService.ReloadService:output_type -> google.protobuf.Empty
4, // 33: daemon.StartedService.SubscribeServiceStatus:output_type -> daemon.ServiceStatus
7, // 34: daemon.StartedService.SubscribeLog:output_type -> daemon.Log
8, // 35: daemon.StartedService.GetDefaultLogLevel:output_type -> daemon.DefaultLogLevel
9, // 36: daemon.StartedService.SubscribeStatus:output_type -> daemon.Status
10, // 37: daemon.StartedService.SubscribeGroups:output_type -> daemon.Groups
17, // 38: daemon.StartedService.GetClashModeStatus:output_type -> daemon.ClashModeStatus
16, // 39: daemon.StartedService.SubscribeClashMode:output_type -> daemon.ClashMode
27, // 40: daemon.StartedService.SetClashMode:output_type -> google.protobuf.Empty
27, // 41: daemon.StartedService.URLTest:output_type -> google.protobuf.Empty
27, // 42: daemon.StartedService.SelectOutbound:output_type -> google.protobuf.Empty
27, // 43: daemon.StartedService.SetGroupExpand:output_type -> google.protobuf.Empty
18, // 44: daemon.StartedService.GetSystemProxyStatus:output_type -> daemon.SystemProxyStatus
27, // 45: daemon.StartedService.SetSystemProxyEnabled:output_type -> google.protobuf.Empty
21, // 46: daemon.StartedService.SubscribeConnections:output_type -> daemon.Connections
27, // 47: daemon.StartedService.CloseConnection:output_type -> google.protobuf.Empty
27, // 48: daemon.StartedService.CloseAllConnections:output_type -> google.protobuf.Empty
24, // 49: daemon.StartedService.GetDeprecatedWarnings:output_type -> daemon.DeprecatedWarnings
29, // 50: daemon.StartedService.SubscribeHelperEvents:output_type -> daemon.HelperRequest
27, // 51: daemon.StartedService.SendHelperResponse:output_type -> google.protobuf.Empty
31, // [31:52] is the sub-list for method output_type
10, // [10:31] is the sub-list for method input_type
27, // 15: daemon.StartedService.ClearLogs:input_type -> google.protobuf.Empty
6, // 16: daemon.StartedService.SubscribeStatus:input_type -> daemon.SubscribeStatusRequest
27, // 17: daemon.StartedService.SubscribeGroups:input_type -> google.protobuf.Empty
27, // 18: daemon.StartedService.GetClashModeStatus:input_type -> google.protobuf.Empty
27, // 19: daemon.StartedService.SubscribeClashMode:input_type -> google.protobuf.Empty
16, // 20: daemon.StartedService.SetClashMode:input_type -> daemon.ClashMode
13, // 21: daemon.StartedService.URLTest:input_type -> daemon.URLTestRequest
14, // 22: daemon.StartedService.SelectOutbound:input_type -> daemon.SelectOutboundRequest
15, // 23: daemon.StartedService.SetGroupExpand:input_type -> daemon.SetGroupExpandRequest
27, // 24: daemon.StartedService.GetSystemProxyStatus:input_type -> google.protobuf.Empty
19, // 25: daemon.StartedService.SetSystemProxyEnabled:input_type -> daemon.SetSystemProxyEnabledRequest
20, // 26: daemon.StartedService.SubscribeConnections:input_type -> daemon.SubscribeConnectionsRequest
23, // 27: daemon.StartedService.CloseConnection:input_type -> daemon.CloseConnectionRequest
27, // 28: daemon.StartedService.CloseAllConnections:input_type -> google.protobuf.Empty
27, // 29: daemon.StartedService.GetDeprecatedWarnings:input_type -> google.protobuf.Empty
27, // 30: daemon.StartedService.SubscribeHelperEvents:input_type -> google.protobuf.Empty
28, // 31: daemon.StartedService.SendHelperResponse:input_type -> daemon.HelperResponse
27, // 32: daemon.StartedService.StopService:output_type -> google.protobuf.Empty
27, // 33: daemon.StartedService.ReloadService:output_type -> google.protobuf.Empty
4, // 34: daemon.StartedService.SubscribeServiceStatus:output_type -> daemon.ServiceStatus
7, // 35: daemon.StartedService.SubscribeLog:output_type -> daemon.Log
8, // 36: daemon.StartedService.GetDefaultLogLevel:output_type -> daemon.DefaultLogLevel
27, // 37: daemon.StartedService.ClearLogs:output_type -> google.protobuf.Empty
9, // 38: daemon.StartedService.SubscribeStatus:output_type -> daemon.Status
10, // 39: daemon.StartedService.SubscribeGroups:output_type -> daemon.Groups
17, // 40: daemon.StartedService.GetClashModeStatus:output_type -> daemon.ClashModeStatus
16, // 41: daemon.StartedService.SubscribeClashMode:output_type -> daemon.ClashMode
27, // 42: daemon.StartedService.SetClashMode:output_type -> google.protobuf.Empty
27, // 43: daemon.StartedService.URLTest:output_type -> google.protobuf.Empty
27, // 44: daemon.StartedService.SelectOutbound:output_type -> google.protobuf.Empty
27, // 45: daemon.StartedService.SetGroupExpand:output_type -> google.protobuf.Empty
18, // 46: daemon.StartedService.GetSystemProxyStatus:output_type -> daemon.SystemProxyStatus
27, // 47: daemon.StartedService.SetSystemProxyEnabled:output_type -> google.protobuf.Empty
21, // 48: daemon.StartedService.SubscribeConnections:output_type -> daemon.Connections
27, // 49: daemon.StartedService.CloseConnection:output_type -> google.protobuf.Empty
27, // 50: daemon.StartedService.CloseAllConnections:output_type -> google.protobuf.Empty
24, // 51: daemon.StartedService.GetDeprecatedWarnings:output_type -> daemon.DeprecatedWarnings
29, // 52: daemon.StartedService.SubscribeHelperEvents:output_type -> daemon.HelperRequest
27, // 53: daemon.StartedService.SendHelperResponse:output_type -> google.protobuf.Empty
32, // [32:54] is the sub-list for method output_type
10, // [10:32] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name

View File

@@ -13,6 +13,7 @@ service StartedService {
rpc SubscribeServiceStatus(google.protobuf.Empty) returns(stream ServiceStatus) {}
rpc SubscribeLog(google.protobuf.Empty) returns(stream Log) {}
rpc GetDefaultLogLevel(google.protobuf.Empty) returns(DefaultLogLevel) {}
rpc ClearLogs(google.protobuf.Empty) returns(google.protobuf.Empty) {}
rpc SubscribeStatus(SubscribeStatusRequest) returns(stream Status) {}
rpc SubscribeGroups(google.protobuf.Empty) returns(stream Groups) {}

View File

@@ -20,6 +20,7 @@ const (
StartedService_SubscribeServiceStatus_FullMethodName = "/daemon.StartedService/SubscribeServiceStatus"
StartedService_SubscribeLog_FullMethodName = "/daemon.StartedService/SubscribeLog"
StartedService_GetDefaultLogLevel_FullMethodName = "/daemon.StartedService/GetDefaultLogLevel"
StartedService_ClearLogs_FullMethodName = "/daemon.StartedService/ClearLogs"
StartedService_SubscribeStatus_FullMethodName = "/daemon.StartedService/SubscribeStatus"
StartedService_SubscribeGroups_FullMethodName = "/daemon.StartedService/SubscribeGroups"
StartedService_GetClashModeStatus_FullMethodName = "/daemon.StartedService/GetClashModeStatus"
@@ -47,6 +48,7 @@ type StartedServiceClient interface {
SubscribeServiceStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ServiceStatus], error)
SubscribeLog(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Log], error)
GetDefaultLogLevel(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*DefaultLogLevel, error)
ClearLogs(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
SubscribeStatus(ctx context.Context, in *SubscribeStatusRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Status], error)
SubscribeGroups(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Groups], error)
GetClashModeStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ClashModeStatus, error)
@@ -141,6 +143,16 @@ func (c *startedServiceClient) GetDefaultLogLevel(ctx context.Context, in *empty
return out, nil
}
func (c *startedServiceClient) ClearLogs(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, StartedService_ClearLogs_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *startedServiceClient) SubscribeStatus(ctx context.Context, in *SubscribeStatusRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Status], error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
stream, err := c.cc.NewStream(ctx, &StartedService_ServiceDesc.Streams[2], StartedService_SubscribeStatus_FullMethodName, cOpts...)
@@ -355,6 +367,7 @@ type StartedServiceServer interface {
SubscribeServiceStatus(*emptypb.Empty, grpc.ServerStreamingServer[ServiceStatus]) error
SubscribeLog(*emptypb.Empty, grpc.ServerStreamingServer[Log]) error
GetDefaultLogLevel(context.Context, *emptypb.Empty) (*DefaultLogLevel, error)
ClearLogs(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
SubscribeStatus(*SubscribeStatusRequest, grpc.ServerStreamingServer[Status]) error
SubscribeGroups(*emptypb.Empty, grpc.ServerStreamingServer[Groups]) error
GetClashModeStatus(context.Context, *emptypb.Empty) (*ClashModeStatus, error)
@@ -401,6 +414,10 @@ func (UnimplementedStartedServiceServer) GetDefaultLogLevel(context.Context, *em
return nil, status.Errorf(codes.Unimplemented, "method GetDefaultLogLevel not implemented")
}
func (UnimplementedStartedServiceServer) ClearLogs(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method ClearLogs not implemented")
}
func (UnimplementedStartedServiceServer) SubscribeStatus(*SubscribeStatusRequest, grpc.ServerStreamingServer[Status]) error {
return status.Errorf(codes.Unimplemented, "method SubscribeStatus not implemented")
}
@@ -561,6 +578,24 @@ func _StartedService_GetDefaultLogLevel_Handler(srv interface{}, ctx context.Con
return interceptor(ctx, in, info, handler)
}
func _StartedService_ClearLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(emptypb.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StartedServiceServer).ClearLogs(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: StartedService_ClearLogs_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StartedServiceServer).ClearLogs(ctx, req.(*emptypb.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _StartedService_SubscribeStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(SubscribeStatusRequest)
if err := stream.RecvMsg(m); err != nil {
@@ -833,6 +868,10 @@ var StartedService_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetDefaultLogLevel",
Handler: _StartedService_GetDefaultLogLevel_Handler,
},
{
MethodName: "ClearLogs",
Handler: _StartedService_ClearLogs_Handler,
},
{
MethodName: "GetClashModeStatus",
Handler: _StartedService_GetClashModeStatus_Handler,