J'ai une application pour laquelle je souhaite que le niveau de consignation soit défini sur INFO
, sauf si le mode Débogage est défini, auquel cas je souhaite définir le niveau sur FINEST
.Est-il possible de remplacer les valeurs définies dans le fichier de propriétés pour java.util.logging par programmation?
Si je définis le niveau dans le fichier de propriétés, il ne sera pas outrepassé du programme en utilisant logger.setLevel(Level.FINEST)
également, si je ne définis rien pour le champ .level
dans le fichier de propriétés, le niveau INFO est pris par défaut et ne peut pas remplacer pour utiliser FINEST
si isDebugEnable().
Comment est-ce que je peux configurer ce niveau en fonction de la condition?
try(InputStream configFile = getClass().getClassLoader().getResourceAsStream("logging.properties")) {
LogManager.getLogManager().readConfiguration(configFile);
} catch (IOException e) {
throw new IllegalStateException("Unable to load default logging properties.", e);
}
if (isDebugEnabled()) {
logger.setLevel(Level.FINEST);
} else {
logger.setLevel(Level.INFO);
}
Mon fichier de configuration est la suivante:
handlers= java.util.logging.ConsoleHandler
.level= INFO
# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Enable console to set level to FINEST and above.
java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Je peux le faire en utilisant comme suivre, mais je voudrais savoir s'il y a une meilleure façon de le faire. (Peut être propriétés en utilisant le fichier)
ConsoleHandler consoleHandler = new ConsoleHandler();
setLogLevel();
consoleHandler.setLevel(Level.FINEST);
logger.addHandler(new ConsoleHandler());
Copie possible de [Java - modifier dynamiquement le niveau de consignation] (https://stackoverflow.com/questions/13760095/java-dynamically-change-logging-level) – Avinash