userstory:
As a developer i need to know how much time each block of workflow consumed so that I can identify a bottle neck of an application
I imagine an output as a log4net logs produced by a new logger (can be separated to a special log file by a log4net config)
Each workflow step/workflow block/whole workflow will be measured. An example of output row (draft):
WF: <workflow wf/task/block name with full path as in trace-workflow funcitonality>, time spent: <time spent (ms with sub ms precision)>
Other information can be added by log4net configuration (time of log, thread, etc.)
If it is not used, it shouldn’t slow down an application in more than neglegtable way. So it can be controlled either by log4net ‘logger.isDebugEnabled()’, or by preprocessor macros, or both. But at the end, logger.isDebugEnables() is good enugh but probably the solution can’t be finished by ‘using’ strategy
Done. Duration of Workflow steps, blocks and whole workflows can be written to a special log file. To switch the logging on/off edit log level of “WorkflowProfiling” logger in AsapArchitect.exe.config. To switch the logging on, set it to DEBUG, to switch off set it to INFO.