Composite PropertySource implementation that iterates over a set of
PropertySource instances. Necessary in cases where multiple property sources
share the same name, e.g. when multiple values are supplied to @PropertySource.
Produce concise output (type and name) if the current log level does not include
debug. If debug is enabled, produce verbose output including the hash code of the
PropertySource instance and every name/value property pair.
This variable verbosity is useful as a property source such as system properties
or environment variables may contain an arbitrary number of property pairs,
potentially leading to difficult to read exception and log messages.