【发布时间】:2019-04-26 04:28:49
【问题描述】:
我在 WebJobs 项目中使用 Nlog 和 Application Insights 作为目标来记录遥测数据。如果我只记录如下消息,一切似乎都正常。
_logger.Log(LogLevel.Info, "Job completed");
我可以在应用程序洞察中看到跟踪信息以及消息“作业已完成”
但我想记录一些参数以及如下消息。
_logger.Info($"Job created successfully", req.UserId, req.ReportName, jobId, searchString);
或者像下面这样
catch (Exception ex)
{
_logger.Error(ex, "Error creating the job", req.UserId, req.ReportName, searchString);
throw;
}
我期待应用程序洞察中的跟踪包含我与消息一起传递的参数。但我只能看到消息,但看不到任何参数或异常详细信息。
我错过了什么?
编辑:
NLog nuget 版本 4.3.8 和 Microsoft.ApplicationInsights.NLogTarget nuget 版本 2.4.1
更多代码:
try
{
var jobId = _reportingService.RequestReport(req.ReportName, searchString).Result;
_logger.Info($"Job created successfully", req.UserId, req.ReportName, jobId, searchString);
var output = new RetrieveReportDataRequest()
{
CreationRequest = new ReportCreationRequest()
{
ImmutableUserId = req.UserId,
...
},
SearchParameters = searchString,
JobId = jobId,
Created = DateTime.UtcNow,
};
outputQueueMessage = JsonConvert.SerializeObject(output, settings);
}
catch (Exception ex)
{
log.WriteLine(ex.Message);
_logger.Error(ex, "Error creating the job", req.UserId, req.ReportName, searchString);
throw;
}
【问题讨论】:
-
这是一个网络作业项目?你能添加更多代码吗?并且您正在使用的 nuget 包包含该版本。谢谢。
-
@IvanYang 我已经用更多细节编辑了这个问题。
-
您好,您使用的是 webjobs nuget 包 3.0.x 还是 2.x?
-
@IvanYang Webjobs nuget 版本为 2.1.0
-
@PNDev 您可以实现自己的记录器,就像我们在工作区中所做的那样。如果您不知道如何让我知道我可以提供示例作为答案
标签: c# .net azure nlog azure-application-insights