|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser - я хочу в слак писать сообщения ЛЮБОЙ категории, как захочу. так можно? - я хочу чтобы в слак летели НЕ все сообщения определенной категории из всего приложения, а только из тех мест кода, откуда я бы хотел получать информацию в слак. так можно? вы резко изменили свои требования, изначально они звучали так RegisteredUser Хочу дополнить логгирование в проекте возможностью отсылки некоторых сообщений в канал Slack. Сервис отсылки в Slack работает. Я могу отослать сообщение в Slack. теперь вам уже не нужно _дополнить_, а вы хотите независимо от настроек журналирования слать чего-то там в слак. ну шлите ради бога отдельно, сделайте отдельный слак-сервис и шлите, че вы мозги нам тут колупаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 00:14 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser, если вас не устраивают возможности фильтрации коробочного решения, вы можете подключить другой логгер, с расширенными возможностями. например, Serilog, который отлично интегрируется с ILogger от Microsoft, в котором вы можете добавить фильтрацию какой угодно сложности: https://github.com/serilog/serilog/wiki/Configuration-Basics#filters для Serilog-а имеются и совсем продвинутые фильтры, на основе DSL но, боюсь, с вашими постановками, это только всё ещё больше усложнит )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 00:36 |
|
свой LoggerProvider в ASP.Net Core приложении
|
|||
---|---|---|---|
#18+
RegisteredUser, у меня получилось сделать решение на троечку, но рабочее. В дальнейшем подумаю, как его допилить покрасивее, может комьюнити подскажет. Опишу ситуацию, с которой столкнулся, по описанию она совпадет с твоей по моему мнению В приложении нужно иметь логера-любимчика, который будет использоваться в конкретных случаях, которые будут явно указываться автором приложения. У меня создается отдельный текстовый файл логов(slacklog.txt), куда я пишу эти конкретные вызовы логгера. Есть текстовый файл для общего лога (log2.txt). Есть текстовый файл логов, где я хочу видеть логи, которые произошли только в контроллерах(log.txt). 1)Создаем текстовые логгеры Код: 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. 81. 82. 83. 84. 85. 86. 87. 88.
Делаем логгер-провайдер, который будет выбирать, какой из них использовать в зависимости от значения категории Код: 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.
Регистрируем логгеры в сервисах(ConfigureServices) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Не знаю почему, но когда вызываем Logger.LogInformation("..."), то и ConsoleLogger их публикует и TextLoggerProvider, поэтому приходится ставить жесткую заглушку- хотелось бы переделать этот момент, если кто в курсе как подскажите плиз. Создаем пустой класс-заглушку для категории, потому что просто строку использовать нельзя Код: c# 1.
В контроллере, где хотим использовать логгеры инжектим их. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В том месте, где хотим кинуть лог в конкретный файл вызываем их Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 23:56 |
|
|
start [/forum/topic.php?fid=18&msg=40032062&tid=1354586]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 156ms |
0 / 0 |