c# - 如何在弹性搜索中使用 Serilog 每天自动生成索引
问题描述
我将 serilog 2.8 与 dotnet 框架 4.8 一起使用。相同的日志系统使用以下代码连接到 elasticsearch。
var isxyz = Matching.FromSource("xyz");
var elasticUrl = ConfigurationManager.GetSetting("elasticurl", "http://localhost:9200");
var environment= ConfigurationManager.GetSetting("environment", "test").ToLowerInvariant();
string servicename = "john.processExecutor";
var indexname = $"{servicename.ToLowerInvariant()}.{environment}.{DateTime.Now.ToString("yyyyMMdd")}";
Log.Logger = new LoggerConfiguration()
.Enrich.WithProperty("ServiceName", servicename)
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.Logger(l => l.WriteTo.Console())
.WriteTo.Logger(l => l.Filter.ByIncludingOnly(m => isxyz(m))
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUrl))
{
AutoRegisterTemplate = true,
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
IndexFormat = indexname
})
.WriteTo.File(AppDomain.CurrentDomain.BaseDirectory + "Logs" + "\\" + "Application-.txt", rollingInterval: RollingInterval.Day,
outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
)
.WriteTo.Logger(l => l.Filter.ByIncludingOnly(m => isxyz(m)).WriteTo
.File(AppDomain.CurrentDomain.BaseDirectory + "Logs" + "\\" + "log-.txt", rollingInterval: RollingInterval.Day,
outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] [{SourceContext}] [{FilePath}] [{MemberName}] [{LineNumber}] [{ServiceName}] [{CountryCode}] [{Message:lj}{NewLine}{Exception}]"))
.WriteTo.Logger(l => l.WriteTo
.File(AppDomain.CurrentDomain.BaseDirectory + "Logs" + "\\" + "fulllog-.txt", rollingInterval: RollingInterval.Day,
outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] [{SourceContext}] [{FilePath}] [{MemberName}] [{LineNumber}] [{ServiceName}] [{CountryCode}] [{Message:lj}{NewLine}{Exception}]"))
.CreateLogger();
我想每天自动生成一个索引。我尝试使用 indexdecider。但没有得到如何实现这一目标。
解决方案
你有没有尝试过?
> "log-{0:yyyy.MM.dd}"
推荐阅读
- console - 为什么我的控制台不显示我的 javsacript 变量?
- go - 使用 Go 从 Google Pub Sub 读取所有可用消息
- docker - 用最新标签标记的 docker 图像未检测到 docker 存储库中的最新图像刷新
- javascript - 如何使用来自另一个数组的匹配对象过滤数组并将其推送到新数组?
- python - 如何识别和区分类名、对象属性和变量、对象方法?
- python - Python 9.8 LAB:艺术品标签(使用构造函数定义类)
- flutter - Flutter 自动生成 json/arb 文件的密钥到代码
- javascript - React 中的绑定与箭头函数性能
- math - 如何在 4D 平面上找到一个点周围均匀分布的点?
- ios - WkWebView Cordova Ios onClick 事件未触发