We have a critical process in our J2EE application which does lot of decision making based upon pre-configured parameters. In case the results are not as expected, we have to run the process again in a single thread with "debug log" enabled to see why did we get the results which we got. I would like to add "logic trace" in this process.
This might not be a right place to ask this questions, but I know there are many experts here who can suggest a pattern around it.
Using AOP: AOP can give us a method call trace, not a logic trace. Secondly, we do not use Spring but EJB, Hibernate, JSF, so will have to play with AspectJ. Also, with AOP we end up modifying the classes which makes it hard to find "issues" once the system is in production.
Using an interface ITrace like "public void logic1 (list, ITrace)" and then populating the decisions made in the way to ITrace and finally display it on UI: If I dint find anything more logical and interesting, we'll probably do the same.