code: public static <T extends Closeable> T close(T toClose, Logger logExceptionTo, Object name)
  	{
  		if(toClose == null)
  			return null;
  		try
  		{
  			toClose.close();
  		}
  		catch(IOException e)
  		{
  			(logExceptionTo==null ? logger : logExceptionTo).warn("IOException closing " + (name == null ? toClose.toString() : name) + " ignored.", e);
  		}
  		return null;
  	}
docs: Handle closing.
  @param toClose The Closable to close.
  @param logExceptionTo The log to log any {@link IOException}
  to. If this is null, the logger for the Closer class
  will be used.
  @param name Object to call {@link Object#toString()} on to
  name the object closed for any logged exception. If this is null
  toClose.toString() will be used.
  @return null as a convinence to null out the closed object as in
  <code>toClose = Closer.close(toClose,logExceptionTo,name)</code>