Logs provide a convenient method of recording information from the processes. This information can be as simple as the epoch number of training or as complicated as a multi-variable statistic. In PDP++ logs are stored on the Project, and pointed to by a process. Like the network, logs may have many views.
Processes interface with a log by sending it both header and data information. The header information provides the labels for the columns of data. Each line of data provides a row of information for each of the fields in header line.
Logs can record data to log files, which contain columns and rows of data in text format. Each line of the log file contains an identifier that indicates the name of the process which generated the data. At the start of a log file, a row of header information is recorded, which identifies the data in the columns. Both of these identifiers can be removed with the shell script `bin/getlogdata', which strips them from the file, and writes a new file with a `.logd' extension.
Note that the log data file is distinct from the object save file, which will save the parameters associated with the log object, but not the data in the log itself. Thus, projects do not save any current log data. It has to be specifically saved in a log file.
Also, the log object maintains an internal buffer of log data (the size of which can be set by editing the log, see next section). This buffer can be directly accessed through the script language to perform various data analysis operations.