Dmitriy Azarov

Логгер Serilog для Telegram

Все логирование в .Net core проектах я делаю используя логгер Serilog. Очень удобно получать оперативную информацию сразу в телеграм. Например, комментарии этого блога приходят мне сразу в телеграм. Отвечать на них я правда еще не научил бота =)

Вся настройка заключается в этом коде:

var log = new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .WriteTo.Telegram("000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "000000")
                .CreateLogger();
log.Information("This is an information message!");

Пример работы

Чтобы создать бота нужно написать Bot Father. После создания необходимо добавить бота в контакты и выполнить команду /start. Узнать свой id можно пройдя по ссылке (не забыть заменить токен): https://api.telegram.org/botTOKEN/getUpdates.

Чтобы создать свой логгер для Serilog необходимо унаследоваться от ILogEventSink. И определяем единственный, требуемый метод.

public void Emit(LogEvent logEvent)
{
   var message = FormatProvider != null
       ? new TelegramMessage(text: logEvent.RenderMessage(formatProvider: FormatProvider))
       : RenderMessageImplementation(input: logEvent);
   SendMessage(token: _token, chatId: _chatId, message: message);
}

Весь остальной код необходим для удобства отправки сообщений в телеграм и для удобного конфигурирования логгера (LoggerConfiguration). Исходный код открыт и доступен https://github.com/oxozle/serilog-sinks-telegram

  • 09 авг 2017
  • serilog, telegram
0 комментариев
Ваш комментарий
адрес не будет опубликован
Текст