Как настроить Serilog для динамической маршрутизации журналов в разные файлы в зависимости от контекста службы во время C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как настроить Serilog для динамической маршрутизации журналов в разные файлы в зависимости от контекста службы во время

Сообщение Anonymous »

Я использую Serilog для ведения журналов, моя цель — заставить каждую службу в приложении записывать журналы в определенный файл на основе параметра пути во время выполнения (я не могу использовать это решение).
Я настраиваю Serilog для записи в приемник ElasticSearch (и консоль), поэтому предпочитаю настраивать Serilog только один раз в DI с помощью:

Код: Выделить всё

builder.Host.UseSerilog((ctx, lc) => lc
.WriteTo.Elasticsearch(
new ElasticsearchSinkOptions(new Uri("https://esk.mycompany.com:443"))
{
AutoRegisterTemplate = true,
IndexFormat = "logs-mycompany-myservice",
TypeName = null,
BatchAction = ElasticOpType.Create,
ModifyConnectionSettings = (c) =>
{
c.ServerCertificateValidationCallback(
(o, certificate, arg3, arg4) => { return true; });
c.GlobalHeaders(new NameValueCollection { { "Authorization", "ApiKey " + "..." } });
return c;
},
}
)
.Enrich.WithElasticApmCorrelationInfo()
.ReadFrom.Configuration(ctx.Configuration)
.WriteTo.Console()
);
Например, я пытаюсь добиться чего-то вроде:

Код: Выделить всё

public class ServiceA
{
private readonly ILogger _logger;

public ServiceA(ILogger logger, string pathA)
{
logger.SetPath(pathA) // All serviceA's logs will be saved in "pathA"
_logger = logger;
}
}

public class ServiceB
{
private readonly ILogger _logger;

public ServiceB(ILogger logger, string pathB)
{
logger.SetPath(pathB) // All serviceB's logs will be saved in "pathB"
_logger = logger;
}
}
Как я могу ввести путь в Serilog во время выполнения, чтобы он по-прежнему отправлял журналы в elasticsearch и записывал их в файл журнала по пути?

Подробнее здесь: https://stackoverflow.com/questions/784 ... based-on-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»