Is there a program which will log each program I start on my Android device?
Use the phone information dial code if it works.

In your dialer enter *#*#4636#*#* to get to the phone info screen.

On my Spica running 2.1 Eclair, the last option of USAGE STATISTICS shows the usage time (in milliseconds) and the no. of times an app has been launched.

At first glance, it does however seem to be a log restricted from the time the phone was last booted.