Have an internal circular buffer to store (all) log messages
The BIND 9 would be extended so it will store all (for some definition of all) log messages in a circular buffer irrespective of the log settings. This buffer would be accessible via rndc command and in would be stored in the core dump.
Something between 100-1000 last log messages would be a good number (we could also have a per-thread buffer or something to not kill performance...).