|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Коллеги! Хочу дополнить логгирование в проекте возможностью отсылки некоторых сообщений в канал Slack. Сервис отсылки в Slack работает. Я могу отослать сообщение в Slack. Создаю класс логгера и проавайдера вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
В Startup добавляю провайдер так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
После этого ВСЕ логи начинают валиться в Slack, а я хочу, чтобы ТОЛЬКО ТЕ, что мне НУЖНЫ были там, а все остальное осталось без изменений. Что я сделал неправильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 16:41 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Интерсный подход в функции IsEnabled ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:16 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Вероятно, автор думает, что break прерывает метод, а не switch, и возвращает default(bool) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:22 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Shocker.Pro автор ничего не думает. это пока заглушка. не обращайте на IsEnabled внимание. там всегда будет true и этого пока достаточно ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:24 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
В общем пока картина такая: - по умолчанию логи обрабатывает последний зарегистрированный в LoggerFactory провайдер (и это мой провайдер) - а мне бы хотелось, чтобы ничего не ломая, что было написано ранее, просто добавить еще одну возможность логгирования. так возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:56 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser ТОЛЬКО ТЕ, что мне НУЖНЫ были RegisteredUser это пока заглушка. там всегда будет true RegisteredUser Что я сделал неправильно? Вообще, фильтрация по LogLevel делается на уровне настройки провайдера, а не внутри логгера. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:56 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser по умолчанию логи обрабатывает последний зарегистрированный в LoggerFactory провайдер https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:59 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
я хз зачем все это если есть https://github.com/eth0izzle/NLog.Slack https://github.com/mgibas/serilog-sinks-slack ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:03 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Shocker.Pro RegisteredUser ТОЛЬКО ТЕ, что мне НУЖНЫ были RegisteredUser это пока заглушка. там всегда будет true RegisteredUser Что я сделал неправильно? Вообще, фильтрация по LogLevel делается на уровне настройки провайдера, а не внутри логгера. Предлагаю считать, что IsEnabled имеет вот такое наполнение Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:20 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
А вопрос-то тогда какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:33 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Shocker.Pro А вопрос-то тогда какой? Вопрос такой: - сейчас в проекте работает логгирование и я хочу оставить его так, как оно сейчас работает - я хочу добавить в проект свое логгирование в Slack - эти логгирования должны работать одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:56 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Я дал ссылку на документацию по логированию в Core Что сделано в соответствии с этой документацией, что работает не так, как ожидалось? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:06 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Скорее всего автор имеет ввиду оставить дефолтный коровский логгер, а в контроллере дополнительно логировать определенные события в дополнительный логгер. Например info-сообщения логируем в один текстовый файл, errors- в другой. Но при этом, по дефолту настроенный ASP Core логгер также пишет сообщения в консоль. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:46 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
vb_sub Скорее всего автор имеет ввиду оставить дефолтный коровский логгер, а в контроллере дополнительно логировать определенные события в дополнительный логгер. Например info-сообщения логируем в один текстовый файл, errors- в другой. Но при этом, по дефолту настроенный ASP Core логгер также пишет сообщения в консоль. Но пока автор не расшифровал, что он понимает под RegisteredUser ТЕ, что мне НУЖНЫ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:55 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
vb_sub Скорее всего автор имеет ввиду оставить дефолтный коровский логгер, а в контроллере дополнительно логировать определенные события в дополнительный логгер. именно так! А мой логгер должен писать в Slack. Всё! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:49 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Ну тогда зачем тебе вообще нужна реализация ILogger? Для универсальности только. Просто добавляешь свой сервис логирования и пробрасываешь в нужные контроллеры параллельно с штатным логгером P.S. vb_sub, тебе орден хрустального шара! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:51 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
vb_sub Скорее всего автор имеет ввиду оставить дефолтный коровский логгер, а в контроллере дополнительно логировать определенные события в дополнительный логгер. Например info-сообщения логируем в один текстовый файл, errors- в другой. Но при этом, по дефолту настроенный ASP Core логгер также пишет сообщения в консоль. Это абсолютно неправильный подход. Сама суть использования всевозможных провайдеров в том, что ты всегда и все пишешь в один и тот же единственный ILogger, а на уровне конфигурации разруливаешь что конкретно куда писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 14:59 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
fkthat Это абсолютно неправильный подход. Сама суть использования всевозможных провайдеров в том, что ты всегда и все пишешь в один и тот же единственный ILogger, а на уровне конфигурации разруливаешь что конкретно куда писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 15:05 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
Shocker.Pro Ну тогда зачем тебе вообще нужна реализация ILogger? Для универсальности только. Просто добавляешь свой сервис логирования и пробрасываешь в нужные контроллеры параллельно с штатным логгером P.S. vb_sub, тебе орден хрустального шара! Пробрасывать два логгера в контроллер как-то зашкварно, отловить бы в какой логгер кидать сообщения на более высоком уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 15:13 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser Что я сделал неправильно? Неправильно поставили задачу. Ваша задача сводится к фильтрации. Вместо этого вы _заменили_ дефолтный логгер. Непонятно зачем вы это сделали. Вам нужно добавить провайдер слака, вот этот например https://github.com/imperugo/Microsoft.Extensions.Logging.Slack и настроить фильтрацию, как описано здесь https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#log-filtering можете в слак писать только сообщения определённой категории ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 21:46 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
vb_sub Shocker.Pro Ну тогда зачем тебе вообще нужна реализация ILogger? Для универсальности только. Просто добавляешь свой сервис логирования и пробрасываешь в нужные контроллеры параллельно с штатным логгером P.S. vb_sub, тебе орден хрустального шара! Пробрасывать два логгера в контроллер как-то зашкварно, отловить бы в какой логгер кидать сообщения на более высоком уровне. хернёй страдаете. из коробки есть гибкая фильтрация по уровню журнала, по категории пишите чё хотите, куда хотите, всё через один единственный логгер ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 21:48 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
В общем я сделал так (ILogger Extension): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
единственное, что мне тут не нравится, так это необходимость передачи параметром ISlackService slackService. т.к. DI в static метод, судя по ответам гугла, это какой-то гимор/антипаттерн/фу-фу-фу . ладно, буду пока его передавать, а дальше посмотрим. использую в контроллере так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 13:49 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser, чёт это какой-то полный пи...ц написал же как сделать по уму. что за чудовище вы изобрели? зачем? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 22:05 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
тебе hVostt написал как сделать я по привычки когда скинул ссылки забыл что логер от мс тоже стал приличным у тебя точка входа для логов не должна знать куда и что идет. это разруливается на уровне конфигурирования логера ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 08:24 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
hVostt RegisteredUser Что я сделал неправильно? ... и настроить фильтрацию, как описано здесь https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#log-filtering можете в слак писать только сообщения определённой категории - я хочу в слак писать сообщения ЛЮБОЙ категории, как захочу. так можно? - я хочу чтобы в слак летели НЕ все сообщения определенной категории из всего приложения, а только из тех мест кода, откуда я бы хотел получать информацию в слак. так можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 12:43 |
|
|
start [/forum/topic.php?fid=18&fpage=4&tid=1354586]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
68ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 436ms |
0 / 0 |