我想要一个共享的应用程序见解实例,该实例将保存来自运行中的不同微服务的所有日志。
我要为每个人添加
services.AddLogging(
loggingBuilder =>
{
loggingBuilder
.SetMinimumLevel(settings.LogLevel)
.AddApplicationInsights();
}
);
但是然后在azure门户中,我希望能够搜索单个应用程序的日志,例如使用诸如“ applicationName ='MyAppName'”之类的查询。
是否可以设置loggingBuilder
并在此自定义属性applicationName
中添加为MyAppName
?
记录本身就像
public void MyMethod()
{
try
{
//whatever
}
catch (Exception ex)
{
logger.LogError(ex, "Meaningful information");
}
}
或者共享应用程序见解实例并将所有日志和遥测信息一堆可用,这通常不是一个好主意吗?
答案 0 :(得分:2)
您可以使用ITelemetryInitializer设置角色名称
public class MyTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if (string.IsNullOrEmpty(telemetry.Context.Cloud.RoleName))
{
//set custom role name here
telemetry.Context.Cloud.RoleName = "RoleName";
}
}
}
然后,如果其.net核心对其进行注册
services.AddSingleton<ITelemetryInitializer>(new MyTelemetryInitializer ());