ElasticSearchLoggingWriter.cs 936 B

12345678910111213141516171819202122232425262728293031323334
  1. using Nest;
  2. namespace Admin.NET.Core;
  3. /// <summary>
  4. /// ES日志写入器
  5. /// </summary>
  6. public class ElasticSearchLoggingWriter : IDatabaseLoggingWriter
  7. {
  8. private readonly ElasticClient _esClient;
  9. public ElasticSearchLoggingWriter(ElasticClient esClient)
  10. {
  11. _esClient = esClient;
  12. }
  13. public void Write(LogMessage logMsg, bool flush)
  14. {
  15. var document = new SysLogOp
  16. {
  17. LogName = logMsg.LogName,
  18. LogLevel = logMsg.LogLevel.ToString(),
  19. EventId = logMsg.EventId.Id.ToString(),
  20. Message = logMsg.Message,
  21. Exception = logMsg.Exception?.ToString(),
  22. State = logMsg.State?.ToString(),
  23. LogDateTime = logMsg.LogDateTime,
  24. ThreadId = logMsg.ThreadId,
  25. TraceId = logMsg.TraceId,
  26. UseUtcTimestamp = logMsg.UseUtcTimestamp,
  27. };
  28. _esClient.IndexDocument(document);
  29. }
  30. }