Package weka.core

# Class Debug

java.lang.Object
weka.core.Debug

All Implemented Interfaces:
  `Serializable`, `RevisionHandler`

public class Debug extends Object implements Serializable, RevisionHandler
A helper class for debug output, logging, clocking, etc.

Version:
  $Revision: 8034 $
Author:
  fracpete (fracpete at waikato dot ac dot nz)
See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Debug.Clock`
  A little helper class for clocking and outputting times.
  `static class`
  `Debug.DBO`
  contains debug methods
  `static class`
  `Debug.Log`
  A helper class for logging stuff.
  `static class`
  `Debug.Random`
  This extended Random class enables one to print the generated random numbers etc., before they are returned.
  `static class`
  `Debug.SimpleLog`
  A little, simple helper class for logging stuff.
  `static class`
  `Debug.Timestamp`
  A class that can be used for timestamps in files, The toString() method simply returns the associated Date object in a timestamp format.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Level`
  `ALL`
  the log level All
  `static final Level`
  `CONFIG`
  the log level Vonfig
  `static final Level`
  `FINE`
  the log level Fine
  `static final Level`
  `FINER`
  the log level Finer
  `static final Level`
  `FINEST`
  the log level Finest
  `static final Level`
  `INFO`
  the log level Info
  `static final Level`
  `OFF`
  the log level Off - i.e., no logging
  `static final Level`
  `SEVERE`
  the log level Severe
  `static final Level`
  `WARNING`
  the log level Warning

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Debug()`
  default constructor, prints only to stdout
  `Debug(String filename)`
  logs the output to the specified file (and stdout).
  `Debug(String filename, int size, int numFiles)`
  logs the output

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Debug.Clock`
  `getClock()`
  returns the instance of the Clock that is internally used
  `static String`
  `getCurrentDir()`
  returns the current working directory of the user
  `boolean`
  `getEnabled()`
  returns whether the logging is enabled
  `static String`
  `getHomeDir()`
  returns the home directory of the user
  `String`
  `getRevision()`
  Returns the revision string.
  `static String`
  `getTempDir()`
  returns the system temp directory
  `static Object`
  `loadFromFile(String filename)`
  deserializes the content of the file and returns it, null if an error occurred.
  `void`
  `log(String message)`
  prints the given message with level INFO
  `void`
  `log(Level level, String message)`
  prints the given message with the specified level and an empty sourceclass
  `void`
  `log(Level level, String sourceclass, String message)`
  prints the given message with the specified level
  `void`
  `log(Level level, String sourceclass, String sourcemethod, String message)`
  prints the given message with the specified level
  `static Debug.Clock`
  `newClock()`
  returns a new instance of a clock
  `static Debug.Log`
  `newLog(String filename, int size, int numFiles)`
  returns a new Log instance
  `static Random`
  `newRandom()`
  returns a default debug random object, with no particular seed and debugging enabled.
  `static Random`
  `newRandom(int seed)`
  returns a debug random object with the specified seed and debugging enabled.
  `static Debug.Timestamp`
  `newTimestamp()`
  returns a default timestamp for the current date/time
  `static boolean`
  `saveToFile(String filename, Object o)`
  writes the serialized object to the speicified file
  `void`
  `setEnabled(boolean value)`
  sets whether the logging is enabled or not
  `void`
  `startClock()`
  starts the clock
  `void`
  `stopClock(String message)`
  stops the clock and prints the message associated with the time, but only if the logging is enabled.
  `static Level`
  `stringToLevel(String level)`
  turns the string representing a level, e.g., "FINE" or "ALL" into the corresponding level (case-insensitive).
  `static boolean`
  `writeToFile(String filename, Object obj)`
  Writes the given object to the specified file.
  `static boolean`
  `writeToFile(String filename, Object obj, boolean append)`
  Writes the given object to the specified file.
  `static boolean`
  `writeToFile(String filename, String message)`
  Writes the given message to the specified file.
  `static boolean`
  `writeToFile(String filename, String message, boolean append)`
  Writes the given message to the specified file.

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### ALL

    public static final Level ALL
    the log level All

  - ### CONFIG

    public static final Level CONFIG
    the log level Vonfig

  - ### FINE

    public static final Level FINE
    the log level Fine

  - ### FINER

    public static final Level FINER
    the log level Finer

  - ### FINEST

    public static final Level FINEST
    the log level Finest

  - ### INFO

    public static final Level INFO
    the log level Info

  - ### OFF

    public static final Level OFF
    the log level Off - i.e., no logging

  - ### SEVERE

    public static final Level SEVERE
    the log level Severe

  - ### WARNING

    public static final Level WARNING
    the log level Warning

- ## Constructor Details

  - ### Debug

    public Debug()
    default constructor, prints only to stdout

  - ### Debug

    public Debug(String filename)
    logs the output to the specified file (and stdout). Size is 1,000,000 bytes and 1 file.
    Parameters:
      `filename` - the name of the log

  - ### Debug

    public Debug(String filename, int size, int numFiles)
    logs the output
    Parameters:
      `filename` - the name of the log
      `size` - the size of the files in bytes
      `numFiles` - the number of files for rotating

- ## Method Details

  - ### stringToLevel

    public static Level stringToLevel(String level)
    turns the string representing a level, e.g., "FINE" or "ALL" into the corresponding level (case-insensitive). The default is ALL.
    Parameters:
      `level` - the string to return a level for
    Returns:
      the corresponding level or the default

  - ### newLog

    public static Debug.Log newLog(String filename, int size, int numFiles)
    returns a new Log instance
    Parameters:
      `filename` - the name of the log
      `size` - the size of the files in bytes
      `numFiles` - the number of files for rotating
    Returns:
      the log instance

  - ### log

    public void log(String message)
    prints the given message with level INFO
    Parameters:
      `message` - the message to print

  - ### log

    public void log(Level level, String message)
    prints the given message with the specified level and an empty sourceclass
    Parameters:
      `level` - the level of logging
      `message` - the message to print

  - ### log

    public void log(Level level, String sourceclass, String message)
    prints the given message with the specified level
    Parameters:
      `level` - the level of logging
      `sourceclass` - the class that logs the message
      `message` - the message to print

  - ### log

    public void log(Level level, String sourceclass, String sourcemethod, String message)
    prints the given message with the specified level
    Parameters:
      `level` - the level of logging
      `sourceclass` - the class that logs the message
      `sourcemethod` - the method that logs the message
      `message` - the message to print

  - ### setEnabled

    public void setEnabled(boolean value)
    sets whether the logging is enabled or not
    Parameters:
      `value` - if true logging will be enabled

  - ### getEnabled

    public boolean getEnabled()
    returns whether the logging is enabled
    Returns:
      true if the logging is enabled

  - ### newClock

    public static Debug.Clock newClock()
    returns a new instance of a clock
    Returns:
      a new instance of a Clock

  - ### getClock

    public Debug.Clock getClock()
    returns the instance of the Clock that is internally used
    Returns:
      the clock that's being used

  - ### startClock

    public void startClock()
    starts the clock

  - ### stopClock

    public void stopClock(String message)
    stops the clock and prints the message associated with the time, but only if the logging is enabled.
    Parameters:
      `message` - the message to print
    See Also:
      - `getEnabled()`

  - ### newRandom

    public static Random newRandom()
    returns a default debug random object, with no particular seed and debugging enabled.
    Returns:
      a new instance of a Random object

  - ### newRandom

    public static Random newRandom(int seed)
    returns a debug random object with the specified seed and debugging enabled.
    Parameters:
      `seed` - the seed value
    Returns:
      a new instance of a Random object

  - ### newTimestamp

    public static Debug.Timestamp newTimestamp()
    returns a default timestamp for the current date/time
    Returns:
      a new timestamp

  - ### getTempDir

    public static String getTempDir()
    returns the system temp directory
    Returns:
      the temp directory

  - ### getHomeDir

    public static String getHomeDir()
    returns the home directory of the user
    Returns:
      the user's home directory

  - ### getCurrentDir

    public static String getCurrentDir()
    returns the current working directory of the user
    Returns:
      the user's current working directory

  - ### writeToFile

    public static boolean writeToFile(String filename, Object obj)
    Writes the given object to the specified file. The string representation of the object is appended to the file.
    Parameters:
      `filename` - the file to write to
      `obj` - the object to write to the file
    Returns:
      true if writing was successful

  - ### writeToFile

    public static boolean writeToFile(String filename, String message)
    Writes the given message to the specified file. The message is appended to the file.
    Parameters:
      `filename` - the file to write to
      `message` - the message to write
    Returns:
      true if writing was successful

  - ### writeToFile

    public static boolean writeToFile(String filename, Object obj, boolean append)
    Writes the given object to the specified file. The string representation of the object is either appended or replaces the current content of the file.
    Parameters:
      `filename` - the file to write to
      `obj` - the object to write to the file
      `append` - whether to append the message or not
    Returns:
      true if writing was successful

  - ### writeToFile

    public static boolean writeToFile(String filename, String message, boolean append)
    Writes the given message to the specified file. The message is either appended or replaces the current content of the file.
    Parameters:
      `filename` - the file to write to
      `message` - the message to write
      `append` - whether to append the message or not
    Returns:
      true if writing was successful

  - ### saveToFile

    public static boolean saveToFile(String filename, Object o)
    writes the serialized object to the speicified file
    Parameters:
      `filename` - the file to serialize the object to
      `o` - the object to serialize
    Returns:
      true if writing was successful

  - ### loadFromFile

    public static Object loadFromFile(String filename)
    deserializes the content of the file and returns it, null if an error occurred.
    Parameters:
      `filename` - the name of the file to deserialize
    Returns:
      the deserialized content, null if problem occurred

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Returns:
      the revision