Comments 19
Дешево и сердито :)
+1
Это бы знание, да года три назад…
0
задачка из учебника по АОР
+7
ну я тоже удивился, что нигде нет именно готовой реализации. Если я-таки свилосипедил, то киньте ссылкой на проект, буду благодарен.
А говорят об этом везде, да. На уникальность идеи\реализации не претендую :)
А говорят об этом везде, да. На уникальность идеи\реализации не претендую :)
0
Дело не в проекте, а в том, что такая задача традиционно решается с помощью АОП. А первая задача на АОП, которую чаще всего решают при изучении этой парадигмы — это сквозное логирование.
0
ну да, я поэтому и плюсанул исходный комментарий, что полностью с ним согласен. Это классическая задача АОП.
И именно поэтому я и не расписываю пути «как я решал эту сложнейшую проблему» :) Просто представил результат, потому что в готовом виде ничего подобного (кроме log4postsharp уже упоминавшегося) не нашел.
И именно поэтому я и не расписываю пути «как я решал эту сложнейшую проблему» :) Просто представил результат, потому что в готовом виде ничего подобного (кроме log4postsharp уже упоминавшегося) не нашел.
+1
Удобно получилось.
Интересно, существует ли подобный функционал для Java через аннотации?
Интересно, существует ли подобный функционал для Java через аннотации?
0
В этом подходе вижу одну очень большу проблему тут:
Очень часто при использовании Entity Framework, ну и вообще, бывают lazy-параметры. При вызове ToString все начинает подтягиваться с базы, и не факт что оно сработает вообще на всех этапах работы программы. Поэтому задача сводится к тому, чтобы логировать факт входа.
Конкретизируя задачу, необходимо добавлять вызовы логгера в начало функций, а также логировать не только сам факт входа, но и параметры, с которыми функция была вызвана.
Очень часто при использовании Entity Framework, ну и вообще, бывают lazy-параметры. При вызове ToString все начинает подтягиваться с базы, и не факт что оно сработает вообще на всех этапах работы программы. Поэтому задача сводится к тому, чтобы логировать факт входа.
0
Вопрос немножко не в тему: А что, в EF пришли к лейзи? В той версии, которую я смотрел (вроде 1.0) все вроде было хардкорно-директово. Они еще помнится под это какую-то объяснительную базу подкладывали, доказывая преимущество над подходом NHibernate, типа лучший контроль, нет лишних обращений и.т.п.
0
логирование параметров происходит только при указании атрибута [Log(true)]. В случаях, когда вызов ToString является проблемой, параметры можно не логировать.
Лично я «по умолчанию» логирую-таки без параметров, а с ними — на ключевых стадиях процесса, в ключевых менеджер-классах.
Лично я «по умолчанию» логирую-таки без параметров, а с ними — на ключевых стадиях процесса, в ключевых менеджер-классах.
0
Не понятно, только, зачем ))
0
«благо, и для внутренних нужд мы плавно переходим на log4net», сколько печали в этой фразе =)
+1
а почему PostSharp не подходит?
+2
требует линковки готового продукта со своими библиотеками, что делает нас зависимыми от него.
Проприетарность, и возможная платность в будущем.
Некоторые негативные отзывы о производительности — но это на личном примере не проверялось.
Это вкупе, ну и относительная простота собственной реализации и подтолкнули к Mono.Cecil.
Проприетарность, и возможная платность в будущем.
Некоторые негативные отзывы о производительности — но это на личном примере не проверялось.
Это вкупе, ну и относительная простота собственной реализации и подтолкнули к Mono.Cecil.
0
Sign up to leave a comment.
Автоматизация логирования входов в функции