Object
~~|
~~+--
Verbose
Directly known subclasses: MultiVerbose, NullVerbose
public static class Verbose extends Object
Class to writing verbose messages to a connection or file.
Verbose(con=stderr(), on=TRUE, threshold=0, asGString=TRUE, timestamp=FALSE, removeFile=TRUE, core=TRUE, ...)
connection
or a character
string filename.logical
indicating if the writer is on or off.numeric
threshold that the level
argument
of any write method has to be equal to or larger than in order to the
message being written. Thus, the lower the threshold is the more and
more details will be outputted.TRUE
, each output is preceded with a timestamp.TRUE
and con
is a filename, the file is
first deleted, if it exists. as.character |
|
Returns a character string version of this object. | |
as.double |
Gets a numeric value of this object. |
as.logical |
|
Gets a logical value of this object. | |
capture |
Captures output of a function. |
cat |
|
Concatenates and prints objects if above threshold. | |
enter |
Writes a message and indents the following output. |
enterf |
|
- | |
equals |
Checks if this object is equal to another. |
evaluate |
|
Evaluates a function and prints its results if above threshold. | |
exit |
Writes a message and unindents the following output. |
getThreshold |
|
Gets current verbose threshold. | |
getTimestampFormat |
Gets the default timestamp format. |
header |
|
Writes a header. | |
isOn |
Checks if the output is on. |
isVisible |
|
Checks if a certain verbose level will be shown or not. | |
less |
Creates a cloned instance with a higher threshold. |
more |
|
Creates a cloned instance with a lower threshold. | |
newline |
Writes one or several empty lines. |
off |
|
Turn off the output. | |
on |
Turn on the output. |
popState |
|
- | |
print |
Prints objects if above threshold. |
printf |
|
Formats and prints object if above threshold. | |
pushState |
Pushes the current indentation state of the Verbose object. |
ruler |
|
Writes a ruler. | |
setDefaultLevel |
Sets the current default verbose level. |
setThreshold |
|
Sets verbose threshold. | |
setTimestampFormat |
Sets the default timestamp format. |
str |
|
Prints the structure of an object if above threshold. | |
summary |
Generates a summary of an object if above threshold. |
timestamp |
|
Writes a timestamp. | |
timestampOff |
- |
timestampOn |
|
Turns automatic timestamping on and off. | |
warnings |
Outputs any warnings recorded. |
writeRaw |
|
Writes objects if above threshold. |
TRUE
, cf. typically an Object reference has value NA
.
This makes it possible to use the reference variable as a first test
before calling Verbose methods. Example:
foo <- function(..., verbose=FALSE) { # enter() will never be called if verbose==FALSE, thus no error. verbose && enter(verbose, "Loading") }Thus, R.utils is not required for
foo()
, but for
foo(verbose==Verbose(level=-1))
it is. Moreover, if using the NullVerbose
class for ignoring all verbose
messages, the above trick will indeed speed up the code, because
the value of a NullVerbose reference variable is always FALSE
.*writeRaw()
or one of the other output methods (which in
turn all call the former).
This guarantees that *writeRaw()
has full control of the
output, e.g. this makes it possible to split output to standard
output and to file.NullVerbose
.
verbose <- Verbose(threshold=-1)
header(verbose, "A verbose writer example", padding=0)
enter(verbose, "Analysis A")
for (kk in 1:10) {
printf(verbose, "step %d\n", kk)
if (kk == 2) {
cat(verbose, "Turning ON automatic timestamps")
timestampOn(verbose);
} else if (kk == 4) {
timestampOff(verbose);
cat(verbose, "Turned OFF automatic timestamps")
cat(verbose, "Turning OFF verbose messages for steps ", kk, "-6")
off(verbose)
} else if (kk == 6) {
on(verbose)
cat(verbose, "Turned ON verbose messages just before step ", kk+1)
}
if (kk %in% c(5,8)) {
enterf(verbose, "Sub analysis #%d", kk)
for (jj in c("i", "ii", "iii")) {
cat(verbose, "part ", jj)
}
exit(verbose)
}
}
cat(verbose, "All steps completed!")
exit(verbose)
ruler(verbose)
cat(verbose, "Demo of some other methods:")
str(verbose, c(a=1, b=2, c=3))
print(verbose, c(a=1, b=2, c=3))
summary(verbose, c(a=1, b=2, c=3))
evaluate(verbose, rnorm, n=3, mean=2, sd=3)
ruler(verbose)
newline(verbose)
Run the code above in your browser using DataLab