I am using (and old version of) EurekaLog. It is great for logging exceptions, but is there a way to make it just log things normally? Or is it just not meant for that?
From the documentation:
EurekaLog ... gives your application ... the ability to catch all exceptions ... and generate a detailed log of the call stack with unit, class, method and line-number information. ... EurekaLog does not affect the performance of your application, as it only executes when an exception is raised.
So no, it doesn't do "logging" as in tracing. For that you'd need a logging tool. Not sure what version of Delphi you're on, but the new version, Delphi XE, comes bundled with Raize CodeSite, a very powerful logging tool. Maybe you should check it out.
It's not meant for that, sorry. You CAN have it include your regular "run log" as an attachment when it mail the crashdump back to you, and you can also inject your own messages directly into the crashdump. But for general logging, no.
A high-end logging tool is SmartInspect, by a frequent SO sponsor Gurock Software. I've only played with it a little, but it seems really nice. http://www.gurock.com/products/smartinspect/
Chris already mentioned our logging tool SmartInspect (thanks!), I just wanted to add that we also partnered with the EurekaLog guys to provide a direct integration with EurekaLog via a special memory log protocol:
Integrating SmartInspect and EurekaLog
The memory protocol allows you to write your log messages to memory (e.g. in a 2MB block) and only flush the logging data when a crash occurs. This is a very fast, direct way to log data at run-time and to add a useful crash log to an EurekaLog exception report. I'm not aware of any other logging tool that can do this.
I would use TraceTool, a free trace utility written in Delphi. It is quite complete, can be used in several languages and it is free. It is not as sophisticated as SmartInspect but does what it promises. You can download it from here.