Log all function invocations to console

萝らか妹 提交于 2019-12-02 12:34:58

问题


It occurs pretty often that I start debugging a class by logging every function call to console and looking for differences in the bugged cases. Is there some attribute that I can apply to a class to enable such a tracing? It's pretty exhausting to have to enter these

Console.WriteLine("classname: methodname")

to every method and to remove them afterwards (removing can be done by conditional compilation, but it is not very nice to look at the code when you have all this redundance)


回答1:


There was an add-on tool someone mentioned to me, using Attributes. Let's see if I can find it.

I think it was PostSharp:

Article

http://www.postsharp.org/




回答2:


You can use PostSharp to intercept all method calls and print them even with all arguments and it does not require source code changes. This CodeProject article shows how to do logging with PostSharp.

Just to note, PostSharp is an aspect-oriented programming (AOP) framework and there are some more.




回答3:


If log4net is as good as log4j, then you are all set

http://logging.apache.org/log4net//index.html




回答4:


In the dim dark ages of software engineering, one often used a profiling tool to achieve that since profiling injected extra code at entry and exit of all functions, although I must say that this is a pretty dismal approach to debugging and when I used it, it was a desperation move not front line. Debugging by print statement is fairly slow and ineffective.




回答5:


AOP is supported also by http://www.springframework.net/



来源:https://stackoverflow.com/questions/1311559/log-all-function-invocations-to-console

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!