In the preferences of my Java application they can set the debug level presented as a JComboBox containing the seven default levels. The list contains SEVERE,WARNING,INFO ecetera which is rather ugly and Id rather replace with 'Severe, Warning' for english.
java.util.logging.Level as used by java logging has contructors that can take a different resource bundle so I thought of sublassing Level so that i can chnage the resource bundle to my own.
But how do I get java logging to use modified levels
EDIT
Used a modified version of the example class given in kans answer below
class LevelItem extends Object
{
public final Level level;
public LevelItem(Level level)
{
this.level = level;
}
public String toString()
{
return level.getLocalizedName().substring(0,1)+
level.getLocalizedName().substring(1).toLowerCase();
}
public boolean equals(Object obj)
{
return (obj instanceof LevelItem &&
(this.level.equals((((LevelItem) obj).level))));
}
}
but need to add equals method so setSelectedItem() works for me in combobox
i.e
debugLevelCombo = new JComboBox();
debugLevelCombo.addItem(new LevelItem(Level.SEVERE));
debugLevelCombo.addItem(new LevelItem(Level.WARNING));
debugLevelCombo.addItem(new LevelItem(Level.INFO));
debugLevelCombo.addItem(new LevelItem(Level.CONFIG));
debugLevelCombo.addItem(new LevelItem(Level.FINE));
debugLevelCombo.addItem(new LevelItem(Level.FINER));
debugLevelCombo.addItem(new LevelItem(Level.FINEST));
debugLevelCombo.setSelectedItem(new
LevelItem(Level.parse(UserPreferences.getInstance().getDebugLevel())));