我已经在.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
。
我正确使用图书馆吗?有没有办法使用.net-core logging和stackdriver捕获整个堆栈跟踪?
修改 - 捕获未处理的错误并将其报告给错误报告。具有完整堆栈跟踪的日志中也存在相同的错误。 使用.LogError()
功能时,错误不会转发给错误报告。