1. A method of error retention for multi-threaded software, comprising: executing an application which uses a logger that collects log statements; collecting at least one log statement from at least one application thread and storing the at least one log statement in memory; and allowing the collected log statement to be persisted in case of an error in a production environment.