#logging #serilog #webapi #.net-6.0
#ведение журнала #serilog #webapi #.net-6.0
Вопрос:
В настоящее время я пытаюсь выяснить обычную практику хранения шаблонов сообщений для ведения журнала (Serilog), чтобы они были легко доступны, в частности, с моих контроллеров.
В настоящее время я храню их именно так, что означало бы дублирование кода, как только мне понадобится другой контроллер.
[Route("api/[controller]")]
[ApiController]
public class TmpController : ControllerBase
{
#region Private Fields
private const string InvalidModelMessageTemplate = "Model is null or invalid: {Model}";
private const string NotFoundMessageTemplate = "Could not find {Entity} with id: {Id}";
private const string UnhandledExceptionMessageTemplate = "Unexpected exception in {Controller}: {Message}";
catch (Exception ex)
{
_logger.LogError(UnhandledExceptionMessageTemplate, nameof(TmpController), ex.Message);
return new StatusCodeResult(StatusCodes.Status500InternalServerError);
}
Самым простым способом был бы статический класс, но у меня такое чувство, что это халтурно, и есть лучшие способы сделать это. Может быть, какая-то встроенная функциональность Serilog? Базовый класс для моих контроллеров?
Есть много способов сделать это, но ни один из них, который я придумал до сих пор, не кажется мне очень чистым. Какие-либо общие подходы?
Комментарии:
1. На самом деле это не практическая проблема, подходящая для переполнения стека. Вы просто хотите написать лучший код. Это может быть лучше подходит для разработки программного обеспечения или анализа кода , но вам следует прочитать их справочные документы и руководства, чтобы понять, соответствует ли это теме или нет. И если их сайты чем-то похожи на наши, они предпочитают код в виде текста, а не изображения кода.
2. Вы могли бы рассмотреть возможность использования файлов ресурсов