4 Built-in Predicates
AllApplicationManualNameSummaryHelp

  • 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
          • protocol/1
          • protocola/1
          • noprotocol/0
          • protocolling/1
        • Debugging and Tracing Programs
        • Debugging and declaring determinism
        • Obtaining Runtime Statistics
        • Execution profiling
        • Memory Management
        • Windows DDE interface
        • Miscellaneous
    • Packages

4.38 Creating a Protocol of the User Interaction

SWI-Prolog offers the possibility to log the interaction with the user on a file.161A 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.