I am finding it impossible to do, and would like some assistence. Below is a summary of my findings:
1) Context.LogMessage()
Seems like the most obvious choice, but as I read the documentation in MSDN, it states the following:
An installer can call this method to write progress or other status information to the log file. If the command-line parameters specify that a user interface should be displayed, the installer should show message boxes or make queries in addition to calling the LogMessage method. Text written to the log file will not be seen by the user unless InstallUtil.exe is used to run the installation and "/LogToConsole= true" is specified in the command line.
The issue with LogMessage is that InstallUtil needs to be used. Since my installer class is executed in an MSI, MSIEXEC.exe is used, and therefore the logging does not work. Passing /logToConsole=true is not even allowed by MSIEXEC.exe.2) Console.WriteLine()
In some other documenation in MSDN, there are code samples demonstrating the use of Console.WriteLine() in an installer class. Tried that. Nothing.
Any thoughts I don't want to write my own dang log file -- I should be able to write to the MSI log file from the installer!
TIA,
Jason

Logging during execution of customer Installer class in an MSI
jiwon
In an installer class, you can use e.SavedState to save information into a file that will sit beside your installed application. You can also use this file to pull data back in when you are un-installing so you uninstall properly, if you like.