- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Custom, unique logfile name
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Custom, unique logfile name
Hi,
I need to find a possibility to generate a unique logfile name with date and time in its name.
At this moment, I have defined in the setup.exe tab of the release view a logfile name via the MSI command line arguments. Something as /L*v %windir%\temp\<company>_<product>_install.log
We used this approach for a long time already and we want to keep it like this, as this location and naming is known among our service engineers.
BUT... every time the setup is started again, this logfile is overwritten.
So I was wondering If there is a possibility to launch a self-written tool that takes care of making the logfile name unique BUT to launch it at the end of the setup, when no extra logging takes place anymore? This to make sure the logfile is not in use AND is complete.
I was thinking on launching this custom tool when clicking finish on the finish dialog but probably some extra logging takes place AFTER the launching of this custom tool??
Someone can confirm this?
Any idea's about how to handle this (unsolvable) problem.
Something extra I want to say... there is no option to write a wrapper around the setup 😉
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi @Christoph,
Thank you for your post.
You could try writing and including a PowerShell custom action in your installer to copy then rename the verbose MSI log file near the very end of the install:
tempFolder = $env:TEMP
$userProf = $env:USERPROFILE
$date = (get-date -format d) -replace("/")
$time = (Get-Date -Format t) -replace(":")
Copy-Item "$tempFolder\Installer.log" -Destination "$userProf\Desktop"
$newFileName = "$date"+"_"+"$time"+"Installer.log"
Rename-Item "$userProf\Desktop\Installer.log" -NewName $newFileName
Or you could try writing a PowerShell script to launch the installer with the custom verbose logging filename:
$DataStamp = get-date -Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $file.fullname,$DataStamp
$MSIArguments = @(
"/i"
('"{0}"' -f $file.fullname)
"/qn"
"/norestart"
"/L*v"
$logFile
)
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow
https://stackoverflow.com/questions/55542637/add-date-to-installer-log-file
Please give these options a try. Do either or both work for you?
Please let us know if you have any questions or concerns. Thanks!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi Ian,
Thanks for the fast reply... much appreciated.
Your second proposal is not an option for us. The installer needs to be started by double clicking the setup.exe 😏
Your first proposal... that is also what I wanted to do but my question is here if there is a place to do so to have the complete logging? Because... doing it at the very end of the installation... I'm afraid the logfile is not complete yet, and it need to be to be honest.
Or do I miss something?
Thank you!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi @Christoph,
Thank you for your reply. You're welcome; I'm happy to help.
Understood. You could try configuring a DoAction Event, off of the user clicking the Finish button, to fire off the PowerShell custom action as the very last thing. If you have the option, I would configure the PowerShell custom action to be asynchronous and to ignore the exit code. You could try configuring a pause / wait / sleep for a bit in the PowerShell custom action to allow the installer time to finish writing to the verbose MSI log.
Please give these suggestions a try. Do they work for you?
Please let us know if you have any questions or concerns. Thanks!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi @Christoph,
Sounds good.
You are welcome! Thank you for contacting Revenera's InstallShield Technical Support!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi @Revenera_Ian ,
as Powershell script usage don't give you the return processing option 'Asynchronous (No wait for completion)', I had to make an exe that does this job.
Making an exe custom action gives you the option 'Asynchronous (No wait for completion)'... what is what you want in my situation.
Thanks for the tips to point me to the correct implementation!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Hi @Christoph,
Thank you for your reply.
Happy to hear the suggestion(s) worked for you. You are welcome! We are happy to help!
Please let us know if you have any questions or concerns. Thanks!