Please enable JavaScript to view this site.

 

Navigation: Appendices > Q++Studio > Debugging > Logs

Q++Studio Diagnostic Logs

Scroll Prev Up Next More

These files help establish what data was available to a diary generation, what instructions were sent to the page-layout application, and what the plugin recorded while carrying out those instructions. They are intended for advanced users and for an AI assistant investigating a specific output problem.

 

The temporary-table exports are snapshots of data prepared for generation. The SARA export lists prepared search-and-replace instructions. The combined generation-messages/SARA-hits export records reported results, while the DTP generation and scan logs provide the detailed trace. Reading these together helps locate the stage at which the expected result was lost.

 

Which File Should I Inspect?

 

File / topic

Question it helps answer

qpp_TempHolidays.txt

Were the required holiday or school-vacation dates available in the relevant set?

qpp_TempSaints.txt

Which recurring month/day saints or namedays were available?

qpp_TempSaintsExceptions.txt

Were any legacy date-specific saints exceptions available?

qpp_TempSaras_lstSpecsAndRanges.txt

Which SARA commands and page specifications were prepared?

LogGen1.CSV

Which SARA hits and generation messages were recorded, and for which pages and objects?

qpplog.txt

What did the DTP plugin process, report, skip, or fail to complete?

qppscanlog.txt

What did the plugin find when scanning a template?

 

Collect Matching Evidence

 

Keep a copy of the files associated with the problem before another generation or scan replaces them. Record the script, generation year and date range, whether generation was partial, the affected script line, and the expected result. Include the exported script XML and an example of the incorrect output when the question depends on selections, conditions, or page layout.

 

Use the actual diagnostic-file folder configured by your installation. A temporary path printed inside qpplog.txt identifies a particular command, template, or output file; it is not automatically the location of every diagnostic file.

 

Check export timestamps and the DTP/plugin version header. A scan log may come from an earlier scan or a different template. Matching filenames alone does not establish that all files describe the same operation.

 

Start with the Data, Then Follow the Instructions

 

1. Define one expected occurrence: for example, school-vacation shading for one date in one DiaryGridLine. Resolve its effective set selection from the script, including any overrides.

 

2. Check the appropriate data export for that set and date. The presence of other countries, other sets, other years, or a generation marker does not establish that the required occurrence exists.

 

3. If the required occurrence exists, inspect the applicable conditions and settings in the script XML. In qpplog.txt, identify the page, object and p-code entry relevant to the symptom. The log records DTP instructions and their processing; condition evaluation takes place in the Q++Studio EXE before those instructions are sent to the DTP application.

 

4. For a SARA, compare the prepared command with LEVEL=100 rows in the combined messages/hits export, then inspect its detailed execution trace. For a missing token or resource, inspect the corresponding scan. Check later operations and the final output before treating an intermediate instruction as the finished result.

 

Reading the Temporary-Table Exports

 

The three table exports described here use UTF-8 text, tab-separated columns, and one physical line per record. Lines beginning with # contain metadata. The first non-comment line names the columns. Match columns by name; their order and presence can change between versions.

 

Representation

Meaning

NULL

A database null. This is distinct from an empty string, zero, and False.

""

An empty text value. A nonempty text value is enclosed in double quotes.

"" inside quoted text

A literal double-quote character.

\\, \t, \r, \n

An escaped backslash, tab, carriage return, or line feed, respectively.

\uXXXX

A control character represented by four hexadecimal digits.

0x...

Binary bytes represented in hexadecimal, if a binary field is present.

 

A parser should read the tab-separated, quoted cells first and then decode backslash escapes once, from left to right. Preserve accents, spaces, empty values, and unknown columns. Repeated replacements of escape sequences can turn an original literal backslash into an unintended control character.

 

Check the final “End of export” line and the actual number of data rows. If the header and footer disagree, report the discrepancy and use the rows to establish what is present. A header stating Records: 0 is not sufficient evidence of an empty table. A missing footer leaves completeness unconfirmed.

 

The SARA instruction export has its own two-column layout and can contain raw line breaks and tabs within a command. LogGen1.CSV uses semicolon-separated, quoted fields. The DTP logs are chronological text. Each has its own encoding and character representation: do not apply the temporary-table quoting and escape rules indiscriminately to the other files.

 

Guidance for an AI Assistant

 

Separate what the file proves from what still depends on the script or output. Quote the filename, relevant columns or log excerpt, and the set/date or page/object identifiers. Keep a physical file line number distinct from a logged p-code number.

 

A useful answer gives the observed evidence, the narrow conclusion it supports, and the next check needed to confirm the cause. Do not invent the meanings of internal numeric codes, infer a set name from its ID, or interpret a missing record as proof that the entire database is empty.

 

Examples come from two batches collected on 4 October 2026: a simple run with one SARA command and a complex run with 23 commands and a combined messages/hits export. The scan example comes from the first batch. Counts, IDs, page numbers, and version strings illustrate those files; they are not fixed product values. A download suffix such as (1) distinguishes the supplied copies, not a different diagnostic format.

 

Related documentation: Q++Studio Logs; Viewing p-Code.

 


Topic 189895, last updated on 04-Oct-2026