## HTTPClient
Class Log

    java.lang.Object
      HTTPClient.Log

public class Log
extends Object

This is a simple logger for the HTTPClient. It defines a number of "facilities", each representing one or more logically connected classes. Logging can be enabled or disabled on a per facility basis. Furthermore, the logging output can be redirected to any desired place, such as a file or a buffer; by default all logging goes to System.err.

All log entries are preceded by the name of the currently executing thread, enclosed in {}'s, and the current time in hours, minutes, seconds, and milliseconds, enclosed in []'s. Example: `{Thread-5} [20:14:03.244] Conn: Sending Request`

When the class is loaded, two java system properties are read: HTTPClient.log.file and HTTPClient.log.mask. The first one, if set, causes all logging to be redirected to the file with the given name. The second one, if set, is used for setting which facilities are enabled; the value must be the bitwise OR ('|') of the values of the desired enabled facilities. E.g. a value of 3 would enable logging for the HTTPConnection and HTTPResponse, a value of 16 would enable cookie related logging, and a value of 8 would enable authorization related logging; a value of -1 would enable logging for all facilities. By default logging is disabled.

Since:
  V0.3-3

Field Summary
`static int` `ALL` All the facilities - for use in `setLogging` (-1)
`static int` `AUTH` The Authorization facility (8)
`static int` `CONN` The HTTPConnection facility (1)
`static int` `COOKI` The Cookies facility (16)
`static int` `DEMUX` The StreamDemultiplexor facility (4)
`static int` `MODS` The Modules facility (32)
`static int` `RESP` The HTTPResponse facility (2)
`static int` `SOCKS` The Socks facility (64)
`static int` `URLC` The ULRConnection facility (128)

Method Summary
`static boolean` `isEnabled(int facility)` Check whether logging for the given facility is enabled or not.
`static void` `setLogging(int facilities, boolean enable)` Enable or disable logging for the given facilities.
`static void` `setLogWriter(Writer log, boolean closeWhenDone)` Set the writer to which to log.
`static void` `write(int facility, String msg)` Write the given message to the current log if logging for the given facility is enabled.
`static void` `write(int facility, String prefix, ByteArrayOutputStream buf)` Write the contents of the given buffer to the current log if logging for the given facility is enabled.
`static void` `write(int facility, String prefix, Throwable t)` Write the stack trace of the given exception to the current log if logging for the given facility is enabled.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CONN

    public static final int CONN

  The HTTPConnection facility (1)

  See Also:
    Constant Field Values

### RESP

    public static final int RESP

  The HTTPResponse facility (2)

  See Also:
    Constant Field Values

### DEMUX

    public static final int DEMUX

  The StreamDemultiplexor facility (4)

  See Also:
    Constant Field Values

### AUTH

    public static final int AUTH

  The Authorization facility (8)

  See Also:
    Constant Field Values

### COOKI

    public static final int COOKI

  The Cookies facility (16)

  See Also:
    Constant Field Values

### MODS

    public static final int MODS

  The Modules facility (32)

  See Also:
    Constant Field Values

### SOCKS

    public static final int SOCKS

  The Socks facility (64)

  See Also:
    Constant Field Values

### URLC

    public static final int URLC

  The ULRConnection facility (128)

  See Also:
    Constant Field Values

### ALL

    public static final int ALL

  All the facilities - for use in `setLogging` (-1)

  See Also:
    Constant Field Values

Method Detail

### write

    public static void write(int facility,
                             String msg)

  Write the given message to the current log if logging for the given facility is enabled.

  Parameters:
    `facility` - the facility which is logging the message
    `msg` - the message to log

### write

    public static void write(int facility,
                             String prefix,
                             Throwable t)

  Write the stack trace of the given exception to the current log if logging for the given facility is enabled.

  Parameters:
    `facility` - the facility which is logging the message
    `prefix` - the string with which to prefix the stack trace; may be null
    `t` - the exception to log

### write

    public static void write(int facility,
                             String prefix,
                             ByteArrayOutputStream buf)

  Write the contents of the given buffer to the current log if logging for the given facility is enabled.

  Parameters:
    `facility` - the facility which is logging the message
    `prefix` - the string with which to prefix the buffer contents; may be null
    `buf` - the buffer to dump

### isEnabled

    public static boolean isEnabled(int facility)

  Check whether logging for the given facility is enabled or not.

  Parameters:
    `facility` - the facility to check
  Returns:
    true if logging for the given facility is enable; false otherwise

### setLogging

    public static void setLogging(int facilities,
                                  boolean enable)

  Enable or disable logging for the given facilities.

  Parameters:
    `facilities` - the facilities for which to enable or disable logging. This is bitwise OR ('|') of all the desired facilities; use `ALL` to affect all facilities
    `enable` - if true, enable logging for the chosen facilities; if false, disable logging for them.

### setLogWriter

    public static void setLogWriter(Writer log,
                                    boolean closeWhenDone)

  Set the writer to which to log. By default, things are logged to System.err.

  Parameters:
    `log` - the writer to log to; if null, nothing is changed
    `closeWhenDone` - if true, close this stream when a new stream is set again