堆栈跟踪没有行号

时间:2018-06-07 10:34:47

标签: c# azure-service-fabric

我在本地Service Fabric群集(1个节点)上运行的一种应用类型下有几个不同的应用。有些是无国籍的,有些是有状态的。使用Serilog完成日志记录。问题是所有记录的堆栈跟踪都没有行号。

部署是通过Visual Studio使用" Debug"发布SF项目完成的。组态。我检查了SfDevCluster文件夹,可执行文件的PDB就在那里。

我错过了什么吗?

编辑:日志设置

public static LoggerConfiguration CreateBaseLogConfiguration(bool writeToConsole = true)
{
    const string outputTemplate =
        "[{Timestamp:HH:mm:ss} {Level} {RequestId}] {Message}{NewLine}{Exception}";

    var config = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Information);

    if (writeToConsole)
        config.WriteTo.Console(outputTemplate: outputTemplate);

    return config;
}

var mainLoggerConfiguration = AddOutOfProcessLogging(CreateBaseLogConfiguration(true)
                                .Enrich.FromLogContext()
                                .Enrich.WithProperty("Service", "MyService")
                                .Enrich.WithProperty("Source", "Api"), shouldUseSeq);

Log.Logger = mainLoggerConfiguration.CreateLogger();

public static LoggerConfiguration AddOutOfProcessLogging(LoggerConfiguration loggerConfiguration, bool useSeq)
{
    if (useSeq)
    {
        var seqServer = "http://localhost:5341";
        return loggerConfiguration
            .WriteTo.Seq(seqServer,
                period: TimeSpan.FromMilliseconds(500),
                compact: true);
    }
    else
    {
        var sumoConfig = new FabricConfigurationProvider("Logging");
        var sumoLogicUrl = sumoConfig.GetValue("SumologicUrl");
        var sourceCategory = sumoConfig.GetValue("SumoSourceCategory");

        return loggerConfiguration
            .WriteTo.SumoLogic(sumoLogicUrl, sourceName: "Serilog", sourceCategory: sourceCategory, textFormatter: new RenderedCompactJsonFormatter());
    }
}

Seq和SumoLogic在记录的堆栈跟踪中都没有行号。

日志中的异常:

"@x": "System.Exception: Correlation failed.
           at Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.<HandleRequestAsync>d__12.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at React.AspNet.BabelFileMiddleware.<Invoke>d__5.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()",
"SourceContext": "Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware",

我在控制器的方法中添加了例外:

System.ArgumentException: For testing purposes.
   at MyProject.Controllers.MyController.<Import>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeFilterPipelineAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()

0 个答案:

没有答案