logback-android/src/main/java/ch/qos/logback/core/joran/util/PropertySetter.java
public void setProperty(String name, String value) {
    if (value == null) {
      return;
    }

    name = Introspector.decapitalize(name);

    PropertyDescriptor prop = getPropertyDescriptor(name);

    if (prop == null) {
      addWarn("No such property [" + name + "] in " + objClass.getName() + ".");
    } else {
      try {
        setProperty(prop, name, value);
      } catch (PropertySetterException ex) {
        addWarn("Failed to set property [" + name + "] to value \"" + value
            + "\". ", ex);
      }
    }
  }
public void setProperty(String name, String value) {
    if (value == null) {
      return;
    }

    name = Introspector.decapitalize(name);

    PropertyDescriptor prop = getPropertyDescriptor(name);

    if (prop == null) {
      addWarn("No such property [" + name + "] in " + objClass.getName() + ".");
    } else {
      try {
        setProperty(prop, name, value);
      } catch (PropertySetterException ex) {
        addWarn("Failed to set property [" + name + "] to value \"" + value
            + "\". ", ex);
      }
    }
  }
Set a property on this PropertySetter's Object. If successful, this method
will invoke a setter method on the underlying Object. The setter is the one
for the specified property name and the value is determined partly from the
setter argument type and partly from the value specified in the call to
this method.

<p>
If the setter expects a String no conversion is necessary. If it expects an
int, then an attempt is made to convert 'value' to an int using new
Integer(value). If the setter expects a boolean, the conversion is by new
Boolean(value).

@param name
name of the property
@param value
String value of the property