Create Diary in a function?

10 visualizzazioni (ultimi 30 giorni)
Florian Rössing
Florian Rössing il 6 Mag 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?

Risposta accettata

Walter Roberson
Walter Roberson il 6 Mag 2022
Return RAII from the function. Your onCleanup will not fire until the struct stops existing.
  4 Commenti
Florian Rössing
Florian Rössing il 9 Mag 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 il 9 Mag 2022
https://en.cppreference.com/w/cpp/language/raii sounds plausible

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by