Creating log file for Matlab compiler's created executable

15 views (last 30 days)
Hi I am using matlab compiler to compile an application. I want to create a logfile when its executed. Everything works fine, and logfile is created and information from the Matlab command prompt is added to it as well. What if I want to use a variable logfile name, such as using current date and time as a part of the filename. To be specific, I want to use:
datestr(clock,30)
as a part of the name so that a filename such as:
mylogfile_20170428T101532.log
is created. The way to create fixed name logfile at run time is to specify it at the compile time:
mcc -R '-logfile, filename.log' ..........
Using strcat options for variable filename such as:
mcc -R strcat('''-logfile,DotCodeReader_',datestr(clock,30),'.log''')
Don't work. I don't want to use the diary option of creating a logfile since diary created logfile appears empty until the executable is stopped.
Any suggestions, please?
Best Regards
Wajahat

Answers (2)

Prannay Jain
Prannay Jain on 1 May 2017
You probably cannot provide the variable in the logfile name while using 'mcc'. As a workaround, create an expression of the mcc command where you use the filename variable and call this expression in eval.
>> filename = ['mylogfile_', datestr(clock,30), '.log']
>> exp = ['mcc -m test.m', ' -R ''-logfile,', filename, '''']
>> eval(exp);
  2 Comments
Wajahat Kazmi
Wajahat Kazmi on 3 May 2017
Edited: Wajahat Kazmi on 3 May 2017
Thanks. It does work, however, the point of using the variable name is that the compiled EXE should generate a new name of the logfile, every time it is executed. With the above solution using eval, the filename gets pre-defined. So this is not desired.

Sign in to comment.


Jan
Jan on 1 May 2017
Do you mean:
filename = ['mylogfile_', datestr(clock,30), '.log'];
mcc('-R', '-logfile', filename)
?
  2 Comments
Wajahat Kazmi
Wajahat Kazmi on 3 May 2017
Using the following:
strcat('-logfile,', 'mylogfile_', datestr(clock,30), '.log')
in the mcc function call does work, but again, it fixes the logfile name to the date and time when the executable was generated.
mcc ('-R', strcat('-logfile,', 'mylogfile_', datestr(clock,30), '.log') '-m', '-o', 'myoutputexec', 'mymatlabcode.m')
The question remains, as to how to get the executable call either:
datestr(clock,30)
or even a random number generator instead to generate a new sequence of characters to the logfile name every time the exe is run.

Sign in to comment.

Categories

Find more on Enterprise Deployment with MATLAB Production Server in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by