Kroll-Software introduces advanced logging capabilities for software products

Software has ever been quite complex and it has always been a hard task to find and eliminate all bugs, especially those, that happen only on customer's computers. Good logging is a common approach to get a software free of errors soon.

The program then loggs in case of errors and warnings, such as invalid function arguments, first chance exceptions or any other unexpected program behavior. Only stack traces are logged, which are the involved function calls that have lead to this error, but no program data is ever collected.

By using sophisticated logging techniques,
we can have a stable version so much sooner

This feature is currently only implemented in the latest ProjectPlanner Pro 2015 release. Other products will follow with their upcoming releases.

When you start a software with this feature for the first time, you will be asked to enable logging. Please allow and help to get the software free of bugs faster.

You can later change this setting somewhere in the program's options dialog.

 

We decided to go with logentries.com as our online-logging service provider. This is, where the log events are stored, transferred encrypted and in the moment as they happen.

So when you notice any traffic to this host, or when you get warned by your firewall, you'll know what it is and that it is intended.

  • As soon as a program is completely error-free, no log data is written at all.
  • Logging is not used to collect statistical data.
  • No machine ID, license key, or any other ID that allows conclusions about the user or the license, are ever transmitted.
  • Logging can be deactivated.

 

Appendix: A typical log entry


08/03/2015 08:04:11 [Error] Error: "Index was out of range. Must be 
non-negative and less than the size of the collection. 
Parameter name: index", Stack:
GetStackTrace
LogError
Unsubscribe
CleanupManagedResources
Dispose
Dispose
ForEach
CleanupManagedResources
Dispose
Dispose
CleanupManagedResources
Dispose
Dispose
<ClearItems>b__c
ForEach
ClearItems
set_Resources
Restore
Redo
Execute
RunInternal
Run
ExecuteWithThreadLocal
ExecuteEntry
Dispatch