Skip to content

服务端命令日志

在服务端命令代码逻辑中添加日志,可以方便用户调试服务端命令,了解命令的执行状态。在ExecuteAsync方法内调用 Log.AppendLine 方法

csharp
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            var add1 = await dataContext.EvaluateFormulaAsync(MyProperty); 

            dataContext.Log.AppendLine("这里是服务端命令日志, MyProperty属性值为:" + add1);

            return new ExecuteResult();
        }

测试效果
1669695482913-996fc2d8-7b71-4d7b-a531-553a2a9a6abd.png

如果需要树形结构来输出复杂的日志效果,可以使用 IncreaseIndent 和 DecreaseIndent 方法

csharp
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            var add1 = await dataContext.EvaluateFormulaAsync(MyProperty); 

            dataContext.Log.AppendLine("这里是服务端命令日志, MyProperty属性值为:" + add1);

            dataContext.Log.IncreaseIndent();

            dataContext.Log.AppendLine("这里是二级服务端命令日志1:" + add1);
            dataContext.Log.AppendLine("这里是二级服务端命令日志2:" + add1);

            dataContext.Log.DecreaseIndent();

            return new ExecuteResult();
        }

测试效果
1669695668466-e7892cff-8c75-4ce8-bebe-ae8065358d19.png

注意,IncreaseIndent 和 DecreaseIndent方法必须成对调用

如果希望写诊断日志到文件中,可以使用.net 原生的 Trace方法

csharp
System.Diagnostics.Trace.WriteLine("xxxx");

如果是设计器,在 %Temp%\ForguncyDesignerLog\App 目录下查看

如果是服务器,在 %temp%\ForguncyServerLog\应用名\DiagnosticLog 中查看

更新: 2022-12-02 14:52:39
原文: https://www.yuque.com/robert-bh51n/ea8l6c/uqzbxloyn2fm4sa4