我希望有一个共享的应用程序洞察实例,它将保存来自不同微服务运行的所有日志。
对于其中的每一个,我都添加了
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");
}
}
或者,通常情况下,共享应用洞察实例并将所有日志和遥测信息放在一堆中是不好的想法?
发布于 2019-03-18 09:06:15
您可以使用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 ());
https://stackoverflow.com/questions/55213429
复制相似问题