Did you know ... Search Documentation:
Pack log4p -- prolog/log4p.pl
PublicShow source

Re-exported predicates

The following predicates are re-exported from other modules

 debug(+Topic) is det
 nodebug(+Topic) is det
Add/remove a topic from being printed. nodebug(_) removes all topics. Gives a warning if the topic is not defined unless it is used from a directive. The latter allows placing debug topics at the start of a (load-)file without warnings.

For debug/1, Topic can be a term Topic > Out, where Out is either a stream or stream-alias or a filename (atom). This redirects debug information on this topic to the given output.

 trace(:Pred) is det
 trace(:Pred, +PortSpec) is det
Print passes through ports of specified predicates. Pred is a, possible partial, specification of a predicate as it is also used be spy/1 and similar predicates. Where a full predicate specification is of the shape Module:Name/Arity (or `//Arity for non-terminals), both the module and arity may be omitted in which case Pred refers to all matching predicates. PortSpec is either a single port (call, exit, fail or redo), preceded with + or - or a list of these. The predicate modifies the current trace specification and then installs a suitable wrapper for the predicate using wrap_predicate/4. For example:

` ?- trace(append). % lists:append/2: [all] % lists:append/3: [all] % append/1: [all] true.

?- append([a,b], [c], L). T Call: lists:append([a, b], [c], _10478) T Call: lists:append([b], [c], _11316) T Call: lists:append([], [c], _11894) T Exit: lists:append([], [c], [c]) T Exit: lists:append([b], [c], [b, c]) T Exit: lists:append([a, b], [c], [a, b, c]) L = [a, b, c].

?- trace(append, -all). % lists:append/2: Not tracing % lists:append/3: Not tracing % append/1: Not tracing

Compatibility
- This library replaces prior built-in functionality. Unlike the built-in version, ports are printed regardless of the debug flag. The built-in version printed the call-stack depth. That is currently not provided by this replacement.
 trace(:Pred) is det
 trace(:Pred, +PortSpec) is det
Print passes through ports of specified predicates. Pred is a, possible partial, specification of a predicate as it is also used be spy/1 and similar predicates. Where a full predicate specification is of the shape Module:Name/Arity (or `//Arity for non-terminals), both the module and arity may be omitted in which case Pred refers to all matching predicates. PortSpec is either a single port (call, exit, fail or redo), preceded with + or - or a list of these. The predicate modifies the current trace specification and then installs a suitable wrapper for the predicate using wrap_predicate/4. For example:

` ?- trace(append). % lists:append/2: [all] % lists:append/3: [all] % append/1: [all] true.

?- append([a,b], [c], L). T Call: lists:append([a, b], [c], _10478) T Call: lists:append([b], [c], _11316) T Call: lists:append([], [c], _11894) T Exit: lists:append([], [c], [c]) T Exit: lists:append([b], [c], [b, c]) T Exit: lists:append([a, b], [c], [a, b, c]) L = [a, b, c].

?- trace(append, -all). % lists:append/2: Not tracing % lists:append/3: Not tracing % append/1: Not tracing

Compatibility
- This library replaces prior built-in functionality. Unlike the built-in version, ports are printed regardless of the debug flag. The built-in version printed the call-stack depth. That is currently not provided by this replacement.
 sin(+Angle, -Sine) is det
 cos(+Angle, -Cosine) is det
 tan(+Angle, -Tangent) is det
 log(+X, -NatLog) is det
 log10(+X, -Log) is det
 pow(+X, +Y, -Pow) is det
 ceiling(+X, -Value) is det
 floor(+X, -Value) is det
 round(+X, -Value) is det
 sqrt(+X, -Value) is det
 acos(+X, -Value) is det
 asin(+X, -Value) is det
 atan(+X, -Value) is det
 atan2(+Y, +X, -Value) is det
 sign(+X, -Value) is det
Math library predicates. SWI-Prolog (and ISO) support these as functions under is/2, etc.
deprecated
- Do not use these predicates except for compatibility reasons.
Compatibility
- Quintus Prolog.

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 fatal(Arg1)
 error(Arg1)
 warn(Arg1)
 info(Arg1)
 fatal(Arg1, Arg2)
 error(Arg1, Arg2)
 warn(Arg1, Arg2)
 info(Arg1, Arg2)
 debug(Arg1, Arg2)
 set_log_level(Arg1, Arg2)
 log_levels(Arg1)
 add_log_handler(Arg1)
 remove_log_handler(Arg1)
 logf(Arg1, Arg2, Arg3)