You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
LINGYUN.Abp.Serilog.Enrichers.Application
简体中文 | English
日志属性添加应用程序标识
功能特性
- 为日志事件添加应用程序名称
- 支持自定义应用程序名称字段
- 支持代码配置和JSON配置两种方式
- 缓存日志事件属性以提高性能
- 与Serilog无缝集成
模块引用
[DependsOn(typeof(AbpSerilogEnrichersApplicationModule))]
public class YouProjectModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
AbpSerilogEnrichersConsts.ApplicationName = "demo-app";
}
}
配置项
以下为字段常量,需要明确变更:
- AbpSerilogEnrichersConsts.ApplicationNamePropertyName - 用于自定义ApplicationName字段的名称
- AbpSerilogEnrichersConsts.ApplicationName - 在日志中标识当前应用的名称
使用方法
代码配置方式
Log.Logger = new LoggerConfiguration()
.Enrich.WithApplicationName()
// ...其他配置...
.CreateLogger();
JSON配置方式
{
"Serilog": {
"MinimumLevel": {
"Default": "Information"
},
"Enrich": [ "WithApplicationName" ]
}
}
实现细节
该enricher为每个日志事件添加一个名为"ApplicationName"(可配置)的属性,其值为AbpSerilogEnrichersConsts.ApplicationName中指定的值。为了提高性能,属性会被缓存。
最佳实践
- 在应用程序启动时尽早设置应用程序名称:
public override void PreConfigureServices(ServiceConfigurationContext context)
{
AbpSerilogEnrichersConsts.ApplicationName = "your-app-name";
}
-
为应用程序使用一致的命名约定,以便于日志过滤。
-
考虑通过配置文件设置应用程序名称:
{
"App": {
"Name": "your-app-name"
}
}
AbpSerilogEnrichersConsts.ApplicationName = configuration["App:Name"];
注意事项
- 应用程序名称一旦设置就是静态的,对应用程序的所有日志条目都相同
- enricher使用属性缓存来提高性能
- 只有在日志事件中不存在该属性时才会添加