Lorsque "Exécuter sur le serveur [^ 1]" était sorti sur la console à l'aide de Logger
, le niveau" Configuration "et les niveaux inférieurs n'étaient pas affichés.
--Définissez la destination de sortie sur un fichier. J'ai abandonné l'impression sur la console.
--Définissez non seulement setLevel (Level.ALL)
de FileHandler
mais aussisetLevel (Level.ALL) ʻof
Logger`.
Eclipse 2019-03 (4.11.0) Tomcat 9 Java 11 macOS 10.13.6
Il semble y avoir des fichiers de configuration à envoyer sur la console. Article [1] J'ai pu le résoudre, mais comme je l'ai utilisé en remplaçant Formatter
, il est difficile d'utiliser le fichier de configuration. .. Par conséquent, j'ai abandonné la sortie sur la console et la sortie dans un fichier.
Soyez prudent lorsque vous spécifiez un fichier journal avec un chemin relatif [2].
Il semble que la valeur par défaut de setLevel ()
dans Logger
soit Level.INFO
(information). Définissons-le correctement.
Log.java
public class Log {
private static final String DEBUG_FILE = "log/test.log";
private static final Level DEBUG_LEVEL = Level.FINER;
public static final Logger logger = Logger.getLogger("Test");
public Log() throws SecurityException, IOException {
logger.setLevel(Level.ALL);
FileHandler debugHandler = new FileHandler(DEBUG_FILE, APPEND);
debugHandler.setLevel(DEBUG_LEVEL);
debugHandler.setFormatter(new MyFormatter());
logger.addHandler(debugHandler);
logger.setUseParentHandlers(false);
test();
}
private static void test() {
File file = new File(DEBUG_FILE);
if (file.exists()) {
System.out.println("logfile: " + file.getAbsolutePath());
} else {
System.out.println("logfile is not exist");
}
logger.finest("log test: FINEST");
logger.finer("log test: FINER");
logger.fine("log test: FINE");
logger.config("log test: CONFIG");
logger.info("log test: INFO");
logger.warning("log test: WARNING");
logger.severe("log test: SEVERE");
}
}
Au fait, la classe MyFormatter
est une classe auto-conçue qui hérite de java.util.logging.Formatter
.
Comment utiliser
new Log();
Initialisez avec et où vous voulez sortir le journal
Log.logger.fine("Message du journal");
Je fais.
[1] Tomcat, Eclipse et journaux https://qiita.com/utisam/items/e725ccff4062f3078ad9 [2] Chemin relatif lors de l'exécution de Tomcat sur Eclipse https://qiita.com/milmilk/private/99102afbb678b8e82c4c [3] [Introduction à Java] Comment utiliser Logger (explique le niveau de journal et les paramètres de destination de sortie) https://www.sejuku.net/blog/61048 [4] Comment utiliser java.util.logging https://qiita.com/Qui/items/40077ce9e33738dd3914
[^ 1]: application Eclipse + Tomcat https://searchman.info/java_eclipse/1100.html