Take a look at the features of this Open Source unit:
http://blog.synopse.info/post/2011/04/14/Enhanced-logging-in-SynCommons
- logging with a set of levels (not only a hierarchy of levels);
- fast, low execution overhead;
- can load .map file symbols to be used in logging;
- compression of .map into binary .mab (900 KB -> 70 KB);
- optional inclusion of the .map/.mab into the .exe;
- handle libraries (.ocx/.dll);
- exception logging (Delphi or low-level exceptions) with unit names and line numbers;
- optional stack trace with units and line numbers;
- methods or procedure recursive tracing, with Enter and auto-Leave;
- high resolution time stamps, for customer-side profiling of the application execution;
- set / enumerates / TList / TPersistent / TObjectList / dynamic array JSON serialization;
- per-thread, rotating or global logging;
- multiple log files on the same process;
- optional colored console display;
- optional redirected logging (e.g. to third party library, or to a remote server);
- log viewer GUI application, with per event or per thread filters, and method execution profiler;
- Open Source, works from Delphi 5 up to XE6 (Win32 and Win64).
Your feedback is welcome!