По пункту 3: макрос DEBUG(...) может добавлять сразу __FILE__ и __LINE__... Хотя обычно __LINE__ не особо нужен. Чтоб не было неуправляемого объёма (п.2) нужно управление включением информации в программе. Потом можно, конечно, grep'ом выдрать нужное, но не передать, ни сохранить большой объём может быть негде. А вот времени нет -- это фатальный недостаток. Время нужно всегда.