Create Diary in a function?

10 visualizaciones (últimos 30 días)
Florian Rössing
Florian Rössing el 6 de Mayo de 2022
Comentada: Walter Roberson el 9 de Mayo de 2022
I am currently working on a simulation project where I want progress logs to be written to a file, so I can inspect them later. I was using diary for this. However having the setup of diary in the main function look ugly and made it bulky, so I wanted to move all the setup and diary functionality to a seperate function alike this:
function createLogFile(RunPath)
diaryfile = append(RunPath, 'log.txt');
if exist(diaryfile, 'file')
delete(diaryfile);
end
diary(diaryfile);
RAII.diary = onCleanup(@() diary('off'));
diary on
end
However as soon as the function finishes the diary falls out of scope and is closed.
Is there a way to pass the diary out of the function?

Respuesta aceptada

Walter Roberson
Walter Roberson el 6 de Mayo de 2022
Return RAII from the function. Your onCleanup will not fire until the struct stops existing.
  4 comentarios
Florian Rössing
Florian Rössing el 9 de Mayo de 2022
Thanks for that nice explanation. I believed taht RAII was some kind of system object that specifically has this attribute. The oddly specific and strange name led me to believe that.
Walter Roberson
Walter Roberson el 9 de Mayo de 2022
https://en.cppreference.com/w/cpp/language/raii sounds plausible

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by