如何使用.net-core中的stackdriver记录异常堆栈跟踪?

时间:2018-03-26 07:43:40

标签: c# .net-core stackdriver

我已经在.net核心2.0项目上设置了stackdriver日志,它似乎工作正常。记录异常时有一个问题 - 堆栈跟踪或任何与异常相关的信息都没有被记录。

下面的代码抛出一个空异常,.LogError方法用于记录异常 - 它将异常对象作为参数。

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                      ILoggerFactory loggerFactory) {
    StackdriverLogger = loggerFactory.CreateLogger("ImageCompressInfo");
    try {
        throw new NullReferenceException("null");
    } catch (Exception ex) {
        StackdriverLogger.LogError(ex, "Exception in configure 2", null);
    }

    if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
    }
    app.UseGoogleExceptionLogging();
    app.UseMvc();
}

生成以下日志。正如您所看到的,没有异常相关信息 - 甚至在抛出异常时都没有传递string argument

Stackdriver log

我正确使用图书馆吗?有没有办法使用.net-core logging和stackdriver捕获整个堆栈跟踪?

修改 - 捕获未处理的错误并将其报告给错误报告。具有完整堆栈跟踪的日志中也存在相同的错误。 使用.LogError()功能时,错误不会转发给错误报告。

0 个答案:

没有答案