Recommendations for Logging
Set the Component Name
Use the following pattern for the component name of the Log and LogConditional activity:
- Add a workflow argument CreatingComponent of type string
- As very first activity of your workflow set the CreatingComponent
- Use the workflow argument CreatingComponent in the Log and LogConditional activity as Component
- Now you have a uniquely identifiable and configurable component name for your workflow
Choose the appropriate log level and content to log
- Logging is not for free!
- Logging puts load on the LoggingService
- The more you log the harder it is to find the important information when looking for something in the log (pollution of the log)
There are various mechanisms to help you.
Log level
- Log level Info should only be used for important information, e.g. the summary of what your workflow has done and not every single step inside your workflow. Probably your workflow has not more than 1 Info log message.
- Log level Debug may contain more details about important sub steps of your workflow
Log content
- Do not log the obvious or redundant, e.g. do not log all the workflow arguments, they are anyway in the workflow description
- Log only things that bring a value in finding a problem in a workflow during productive use
Use LogConditional and a workflow argument Verbose
- Add a workflow argument Verbose of type boolean, default should be False
- Use only the LogConditional activity (instead of the Log activity) and set the Condition to the argument Verbose