C# wpf 工程中如何配置GRPC的调试log

WPF客户端配置GRPC环境变量与日志记录
本文介绍了如何在WPF客户端设置GRPC环境变量以实现调试日志,包括设置GRPC_VERBOSITY和GRPC_TRACE,以及如何配置输出到控制台的应用程序选项。

首先,保证wpf功能安装了grpc相关的package并且grpc接口能正常使用。

(1)wpf作为client端在创建client的位置配置GRPC相关的环境变量和logger:

Environment.SetEnvironmentVariable("GRPC_VERBOSITY", "DEBUG");
Environment.SetEnvironmentVariable("GRPC_TRACE", "api");
GrpcEnvironment.SetLogger(new ConsoleLogger());
_client = new YourXXXServiceYourXXXServiceClient(new Channel("127.0.0.1:9444", ChannelCredentials.Insecure));

这里的"GRPC_TRACE"可以配置不同的值“api”、“all”等等,参见 gRPC environment variables
(2)配置wpf工程属性输出log到console:
工程右键属性-》应用程序选项卡-》输出类型选“控制台应用程序”

运行程序,就可以在console中看的GRPC相关的调试log了。

要写一个C#WPF应用程序, Project涵盖:gRPC Client Service project、Monitor Client Wpf project、gRPC protobuf definition project、gRPC Server project 、gRPC Server Service project 在Monitor Client Wpf project上页面操作的某个逻辑得到的数据插入到数据库中,数据库的连接和插入数据库的函数操作实现在 gRPC Server project,但在WPF进行操作时报错,如何修改代码 protobuf的定义 rpc InsertLogData(msglnsertRequest)returns msgDataResponse);// DataResponse message msgDataResponse { bool success = 1; string message = 2;} gRPC Server project 相关函数 public async Task<bool>InsertLogDataAsync(string sPcondition) { try{ m_logger.Info($"Insert Operation Log for user with note:{sPcondition}"); var response = await Task.Run(() => ClalnsertLog.InsertOperationDat a(sPcondition)); return response.Success; } catch (Exception ex) { m_logger.Info(ex); return false; } public override async Task<msgDataResponse> InsertLogData(msgRequest request, ServerCallContext context) try var success = await m_amhsService.InsertLogDataA sync(request.Note); return new msgDataResponse { Success = true, Message = true ? "Insert successful":"Insert failed but success flag was incorrectly set to true in the service (this should be investigated)." } catch (Exception ex) { m_logger.Info(ex,"Database insert error"); return new msgDataResponse { Success = false, Message= $"Server error: {ex.Message}" };} public class ClalnsertLog: ClaModelBase private Logger _logger; public static (bool Success, string Message) InsertOperationData(string sPcondition) { try string[] condition = sPcondition.Split('|'); string sql =string.Format("insert into amhs_monitor_client_operation_l og (datatime,userid,content) values ({0},{1},{2})", condition[0], condition[1], condition[2]); int affectedRows = DUTYDBService.ExecuteNonQu ery(sql); return (affectedRows > 0, "Insert successful"); } catch (Exception ex){ return (false, "Insert failed"); } gRPC Client Service project相关函数 public msgDataResponse InsertLogDatas(string pCondition) var call = m_gRPC_client.InsertLogData(n ew msgRequest(){Note == pCondition }); return call;} Monitor Client Wpf project相关函数 private void btnSearch_Click(object sender, RoutedEventArgs e) string logtext ="[0]" + UserID +": 进入页面准备查询"; string fintext = DateTime.Now.ToString()+"|"+UserID+"|" +logtext; var response = m_amhsService.InsertLogDatas( fintext); }
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值