- Documentation
- Reference manual
- Built-in Predicates
- Notation of Predicate Descriptions
- Character representation
- Loading Prolog source files
- Editor Interface
- Verify Type of a Term
- Comparison and Unification of Terms
- Control Predicates
- Meta-Call Predicates
- Delimited continuations
- Exception handling
- Printing messages
- Handling signals
- DCG Grammar rules
- Database
- Declaring predicate properties
- Examining the program
- Input and output
- Status of streams
- Primitive character I/O
- Term reading and writing
- Analysing and Constructing Terms
- Analysing and Constructing Atoms
- Localization (locale) support
- Character properties
- Operators
- Character Conversion
- Arithmetic
- Misc arithmetic support predicates
- Built-in list operations
- Finding all Solutions to a Goal
- Forall
- Formatted Write
- Global variables
- Terminal Control
- Operating System Interaction
- File System Interaction
- User Top-level Manipulation
- Creating a Protocol of the User Interaction
- Debugging and Tracing Programs
- Obtaining Runtime Statistics
- Execution profiling
- Memory Management
- Windows DDE interface
- Miscellaneous
- Built-in Predicates
- Packages
- Reference manual
4.38 Creating a Protocol of the User Interaction
SWI-Prolog offers the possibility to log the interaction with the user on a file.147A similar facility was added to Edinburgh C-Prolog by Wouter Jansweijer. All Prolog interaction, including warnings and tracer output, are written to the protocol file.
- protocol(+File)
- Start protocolling on file File. If there is already a protocol file open, then close it first. If File exists it is truncated.
- protocola(+File)
- Equivalent to protocol/1, but does not truncate the File if it exists.
- noprotocol
- Stop making a protocol of the user interaction. Pending output is flushed on the file.
- protocolling(-File)
- True if a protocol was started with protocol/1 or protocola/1 and unifies File with the current protocol output file.