To programmatically increase log4j verbosity, a simple code snippet does the trick:
final Logger rootLogger = Logger.getRootLogger(); rootLogger.setLevel(Level.toLevel( rootLogger.getLevel().toInt() + 1, Level.ALL));
I use this to handle the -verbose command-line switch. Repeating the switch keeps increasing my program's verbosity.
Naturally there are wrinkles with a complex log4j configuration, but the idiom remains.