Я использую .net core 2.2 в примере проекта, реализовал LoggerFactory и Serilog (для получения журналов в файле .txt), и они работают нормально.
Но есть ли способ, позволяющий мне включать и выключать ведение журнала, когда он мне динамически не нужен, без внесения каких-либо изменений в код и последующего развертывания на сервере.
Я внес необходимые изменения, чтобы запустить функцию ведения журнала, и она работает довольно хорошо, но теперь я хочу, чтобы моя система перестала регистрировать ошибки в файле .txt, когда я не хочу, чтобы он регистрировался.
Значит, есть ли способ включить / выключить функцию ведения журнала.
В Startup.cs я добавил этот код для начала ведения журнала .txt:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
loggerFactory.AddFile("Logs/log-{Date}.txt");
}
В контроллере с именем customer я создал экземпляр класса ILogger.
private ILogger _logger;
public CustomersController(ILogger < CustomersController > logger) {
_logger = logger;
}
И в этой функции TimeTaken я использовал ее для регистрации времени, затраченного на вызов БД для выборки всех клиентов.
public JsonResult TimeTaken() {
_logger.LogInformation("Controller Called");
Stopwatch sw = new Stopwatch();
sw.Start();
var customers = new List < Customers > ();
if (!_cache.TryGetValue("CustomersList", out customers)) {
if (customers == null) {
customers = _context.Customers.ToList();
}
var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(5));
_cache.Set("CustomersList", customers, cacheEntryOptions);
}
sw.Stop();
var b = sw.ElapsedMilliseconds;
_logger.LogInformation("Data execution took {0} miliseconds", b);
return Json(b);
}
Эти коды работают нормально, просто хочу узнать, есть ли способ включить / выключить их функциональность по моей воле.
Как вызвать API, чтобы остановить запись или что-то ??