BravoCommand contains a logging feature, but it's in great need of improvement. Currently all of the logging from all parts of the application are being sent to the mongo database. Once here this screen really is your only way of sorting and working through the data directly from the database. About the only thing that can be said about this is the fact that it gives you the ability to debug something that is happening in realtime. Even if this isn't always helpful.
The logging level allows you to filter the correct level of logging that you would like to look at. When filtering we show only the top most level selected, if you select Fatal only fatal issues will be displayed. However if you select Error you will see fatal and errors. Not to be able to get some of the data at the lower levels you will need to make sure that the logging is set properly in the web.config of the applications. Warning: Do not turn on any setting over warn in production as this will produce too much information and will quickly overwhelm the logging service. Please make sure that you are using warn and info only in the development environments.
- Fatal - Items at this level indicate that the issue was bad enough that the system stopped functioning because of the issue. If you are seeing this it was the last action before the program that generated it died.
- Error - Items at this level include errors that were either unexpected that were picked up by the logging system or issues that there are no resolutions for.
- Warn - Items at this level contained behavior that we weren't expecting but that we were able to recover from.
- Info - Items at this level are informational in nature and can be helpful for figuring out where something collapsed and died.
- Debug - this is the most voluminous level of the logging and includes the values of items that were sent in the system.
- None - this level shows everything that is currently being collected, this is effectively the same level as debug but may also include items that do not have leveling information provided.
The logger allows for the quick selection of the origin point of the logging source, currently there are only two that are selectable:
- None - Does not enable any filtering on the logging service so that everything is returned.
- BravoCommand - Limits the filtering of the logging to only the data and logging points that were specified directly in the code.
- BravoCommand.ExceptionHandler - Limits the filtering of the logging only to items that were handled by the exception handler and were still marked for persistence after the execution of the entire handling chain.
For records that are tied to clients you can filter based on the name of the client to make searching for information more useful, however understand that this will give you a very limited understanding of the issues at hand because not all of the items are tied to the client. Because of this it can only give you a limited understanding of the data failures that are happening.
This represents the list of all logged items following the filtering of the items using the controls above. The following fields are presented:
- Timestamp - Indicates the time in UTC that the message was logged
- Level - Indicates the severity of the item incurred
- Thread - Thread that the issue occurred on, this can be used to track the issues across the system for finding cascading issues.
- Logger - The logger that registered the error message.
- Message - The internal message that was created by the system.
- Machine - The machine that threw the error message, this can be used to track the issues across the system for finding cascading issues.