Logging cmd in multiple diary

4 Ansichten (letzte 30 Tage)
Jeevraj Hejmady
Jeevraj Hejmady am 29 Aug. 2024
Beantwortet: Voss am 29 Aug. 2024
Hi,
i'm facing an issue in logging using the matlab 'diary' functionality. In the below pseudo-code i have 2 tools and both use diary to log the command window output and one is calling other. The diary off for 2nd tool is terminating the diary for the 1st tool as well due to which the remaining cmd display is not getting logged anywhere.
Here is how the logs are:
Is there a way to use 'diary' or some other functionality that would help is logging the command window output for the beow example ?
logger1();
Initialzing logger 1 Display Message 1 Initialzing logger 2 Display Message 1 End Log Display Message 2 End Log
function logger1()
logName = fullfile(pwd, 'log1.txt');
diary(logName);
fprintf('Initialzing logger 1\n');
fprintf('Display Message 1\n');
logger2;
fprintf('Display Message 2\n');
fprintf('End Log\n');
diary off
end
function logger2()
logName = fullfile(pwd, 'log2.txt');
diary(logName);
fprintf('Initialzing logger 2\n');
fprintf('Display Message 1\n');
fprintf('End Log\n');
diary off
end

Antworten (2)

Mario Malic
Mario Malic am 29 Aug. 2024

Voss
Voss am 29 Aug. 2024
You can restore diary logging to log1.txt after logger2 finishes:
logger1();
function logger1()
logName = fullfile(pwd, 'log1.txt');
diary(logName);
fprintf('Initialzing logger 1\n');
fprintf('Display Message 1\n');
logger2;
diary(logName); % <- restore diary logging to log1.txt
fprintf('Display Message 2\n');
fprintf('End Log\n');
diary off
end
function logger2()
logName = fullfile(pwd, 'log2.txt');
diary(logName);
fprintf('Initialzing logger 2\n');
fprintf('Display Message 1\n');
fprintf('End Log\n');
diary off
end
Of course, another option is to fprintf to the particular file you want to write to instead of fprintf-ing to the command window and using diary.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by