I created a method for managing verbose log output. This is not finished yet, but after this question popped up, I uploaded it to:
This link to Matlab file hosting.
It works by setting the global output log to the desired level and displays a message in the following format:
OUTPUT_LEVEL: function_which_called_message Your_Message.
However, it will only output messages that exceed the set output level. By default, only INFO or higher messages are displayed, so it will not display DEBUG and VERBOSE messages. If you want to see debug messages, then you set:
Output.level(Output.DISP_DEBUG)
Output Methods:
Output.VERBOSE Output.DEBUG Output.INFO Output.WARNING Output.ERROR
You select the messages that will be displayed in your functions by doing Output.'DESIRED_LEVEL'('message',input_1,input2) , as in sprintf or fprintf matlab format. Ie, Output.INFO('The variable value is %d',variable) . For WARNING and ERROR messages, you can also specify an identifier like "PACK: METHOD: ERROR_ID", and thus the output will be in the matlab warning and error functions. Ie Output.WARNING('MY_PACKAGE:MY_METHOD:MY_ID','Something wrong happened here!') .
The following output levels are available:
Output.level(Output.DISP_VERBOSE) % Show all messages Output.level(Output.DISP_DEBUG) % Show debug info warning errors Output.level(Output.DISP_INFO) % Show info warning errors Output.level(Output.DISP_WARNING) % Show warning errors Output.level(Output.DISP_MUTE) % Show only errors.
You can also specify the output to the log file using
Output.place('file_path')
And replace the log file (you can also use it to reset the current log):
Output.place('file_path',true)
Or reset on screen
Output.place(1)
The following is an example of output using the DISP_VERBOSE output level:
>> nilmContainer = NilmFileContainer.newRun('inputFolder','sim_real/','runName','RealHouse','samplesPerFile',60*60*60); VERBOSE: getFilesOnFolder Found 2 files on folder 'data/sim_real/'. They are the following: VERBOSE: getFilesOnFolder [1]:data/sim_real/240AM000.csv VERBOSE: getFilesOnFolder [2]:data/sim_real/240AM001.csv DEBUG: NilmFileContainer.setRunName Updating run name to RealHouse_Run5. INFO: newRun Reading file data/sim_real/240AM000.csv. VERBOSE: csv_data Reading samples (Ignored:0,Read:216000,Remaining:2422014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_1-19:12:46-30_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:216000,Read:216000,Remaining:2206014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_2-20:12:45-30_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:432000,Read:216000,Remaining:1990014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_3-21:12:45-30_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:648000,Read:216000,Remaining:1774014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_4-22:12:45-30_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:864000,Read:216000,Remaining:1558014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_5-23:12:45-30_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:1080000,Read:216000,Remaining:1342014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_6-00:12:44-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:1296000,Read:216000,Remaining:1126014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_7-01:12:43-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:1512000,Read:216000,Remaining:910014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_8-02:12:43-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:1728000,Read:216000,Remaining:694014) at file: sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_9-03:12:43-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:1944000,Read:216000,Remaining:478014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_10-04:12:42-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:2160000,Read:216000,Remaining:262014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_11-05:12:41-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:2376000,Read:216000,Remaining:46014) at file: data/sim_real/240AM000.csv. DEBUG: addFiles Writing file 'data/NILM_DATA/RealHouse_Run5/RealHouse_Run5-File_12-06:12:41-31_10_2012.mat' VERBOSE: csv_data Reading samples (Ignored:2592000,Read:46014,Remaining:0) at file: data/sim_real/240AM000.csv. VERBOSE: csv_data Reading samples (Ignored:0,Read:169986,Remaining:2799058) at file: data/sim_real/240AM001.csv. INFO: readFile Found discontinuity while changing from file 'data/sim_real/240AM000.csv' to 'data/sim_real/240AM001.csv'.
As I said, this is not in the final version, but you can help me improve it! x)