1. A computer-implemented method, comprising: receiving a request to execute an application; instantiating one or more execution threads by at least: generating a global declaration list from one or more log type declarations associated with the one or more execution threads; and allocating a plurality of output buffers for the one or more execution threads; receiving a log event associated with the application; determining whether the log event conforms to at least one of the one or more log type declarations; selecting an output buffer of the plurality of output buffers as an active output buffer; writing a log entry to the active output buffer, the log entry including information from the log event that represents at least one of the log type declarations; and providing further information regarding the log event.