Звучит так, будто вы хотите исследовать аспектно-ориентированное программирование . Подробнее см. здесь на Aspect.net.
Общий подход состоит в том, чтобы написать аспект, обеспечивающий код в начале / конце функции, и указать, что делать в этой ситуации (в вашем случае, зарегистрировать что-либо). Аспект вплетается в ваш код во время процесса сборки, но ваш исходный код остается нетронутым всеми дополнительными журналами.