A computer-implemented method of providing application message delivery, characterized in that it comprises the following steps performed with at least one data processor: at a plurality of log servers (203 a - b) coupled to at least an application server (201 a - c): receiving asynchronously, from the at least one application server (201 a - c), application messages containing application information, each application message being received by at least some log servers (203 a - b) among the plurality of log servers (203 a - b); receiving asynchronously, from the at least one application server (201 a - c), control messages at a predetermined interval, wherein the control messages comprise at least one of: an identifier of an application and a timestamp of the application server, each control message being received by at least some log servers (203 a - b) among the plurality of log servers (203 a - b); at each of the plurality of log servers (203 a - b): storing the received application messages in a current application data file; storing the received control messages in a control file and upon receiving an open-close control message, closing the current application data file, storing said closed application data file and creating a new application data file as the current application data file; comparing the control files of the plurality of log servers (203 a - b) for a given interval; and based on this comparison, determining from among a plurality of application data files from each of the log servers (203 a - b), an application data file as a best-candidate for a given interval and forwarding the best-candidate file for post-processing to a network entity. at a plurality of log servers (203 a - b) coupled to at least an application server (201 a - c): receiving asynchronously, from the at least one application server (201 a - c), application messages containing application information, each application message being received by at least some log servers (203 a - b) among the plurality of log servers (203 a - b); receiving asynchronously, from the at least one application server (201 a - c), control messages at a predetermined interval, wherein the control messages comprise at least one of: an identifier of an application and a timestamp of the application server, each control message being received by at least some log servers (203 a - b) among the plurality of log servers (203 a - b); at each of the plurality of log servers (203 a - b): storing the received application messages in a current application data file; storing the received control messages in a control file and upon receiving an open-close control message, closing the current application data file, storing said closed application data file and creating a new application data file as the current application data file; comparing the control files of the plurality of log servers (203 a - b) for a given interval; and based on this comparison, determining from among a plurality of application data files from each of the log servers (203 a - b), an application data file as a best-candidate for a given interval and forwarding the best-candidate file for post-processing to a network entity.