The way the BES processes errors is fairly obtuse; document it. Then, add LOG() and VERBOSE() calls so that information about errors is included in the logs.
It would be good if the information logged was les dependent on the code formatting each log line. The BESLog class could have support for this added, if that makes sense.
There is probably no reason to set the BES pid and the IP and port numbers for each request since these are likely constant for the life of the process. If those numbers are used only for logging, add them into the BESLog instance - it's a singleton so that should not be too hard. If those are needed by other parts of the BES, then make them globals and initialize them in ServerApp and Standalone.