Salut, j'essaye d'implémenter la journalisation java dans mon application. Je veux utiliser deux gestionnaires. Un gestionnaire de fichiers et mon propre gestionnaire de console. Mes deux gestionnaires fonctionnent bien. Ma journalisation est envoyée vers un fichier et vers la console. Ma journalisation est également envoyée au gestionnaire de console par défaut, ce que je ne veux pas. Si vous exécutez mon code, vous verrez deux lignes supplémentaires envoyées à la console. Je ne veux pas utiliser le gestionnaire de console par défaut. Quelqu'un sait-il comment désactiver le gestionnaire de console par défaut. Je souhaite uniquement utiliser les deux gestionnaires que j'ai créés.
Handler fh = new FileHandler("test.txt");
fh.setFormatter(formatter);
logger.addHandler(fh);
Handler ch = new ConsoleHandler();
ch.setFormatter(formatter);
logger.addHandler(ch);
import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
public class LoggingExample {
private static Logger logger = Logger.getLogger("test");
static {
try {
logger.setLevel(Level.INFO);
Formatter formatter = new Formatter() {
@Override
public String format(LogRecord arg0) {
StringBuilder b = new StringBuilder();
b.append(new Date());
b.append(" ");
b.append(arg0.getSourceClassName());
b.append(" ");
b.append(arg0.getSourceMethodName());
b.append(" ");
b.append(arg0.getLevel());
b.append(" ");
b.append(arg0.getMessage());
b.append(System.getProperty("line.separator"));
return b.toString();
}
};
Handler fh = new FileHandler("test.txt");
fh.setFormatter(formatter);
logger.addHandler(fh);
Handler ch = new ConsoleHandler();
ch.setFormatter(formatter);
logger.addHandler(ch);
LogManager lm = LogManager.getLogManager();
lm.addLogger(logger);
} catch (Throwable e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
logger.info("why does my test application use the standard console logger ?\n" + " I want only my console handler (Handler ch)\n " + "how can i turn the standard logger to the console off. ??");
}
}
b.append(formatMessage(arg0))
place deb.append(arg0.getMessage())
. Avec laformatMessage
méthode, vous rendez compatible votre formateur avec l'utilisationpublic void log(Level level, String msg, Object param1)
et des méthodes similaires.