Afficher une erreur détaillée dans Logger lors de l'exécution de Java sur le serveur

Symptômes

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.

Conclusion

--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`.

environnement

Eclipse 2019-03 (4.11.0) Tomcat 9 Java 11 macOS 10.13.6

commentaire

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.

Code source

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.

référence

[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

Recommended Posts

Afficher une erreur détaillée dans Logger lors de l'exécution de Java sur le serveur
Résoudre l'erreur CreateProcess = 206 lors de l'exécution de Java dans un environnement Windows
Erreur lors de l'installation de l'ensemble lors de l'exécution de rails neufs
Ce que j'ai appris lors de la création d'un serveur en Java
Erreur lors de la lecture avec java
Une erreur se produit lorsque codedeploy-agent est installé dans Ubuntu Server 20.04
Erreur de non-recherche du symbole lors de la nouvelle classe dans un autre fichier Java
Remède pour "Un serveur est déjà en cours d'exécution." Erreur lors de l'exécution des rails s
Évitez les erreurs de code de caractère en java lors de l'utilisation de l'extension VScode RUN-CODE
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Méthode d'enquête lorsque le processeur du serveur exécutant java est lourd
Erreur lors du déploiement d'EC2 avec CircleCI
Essayez d'exécuter Selenuim 3.141.59 avec eclipse (java)
Remarques sur le contrôle du signal en Java
Évitez les erreurs de codage Java qui se produisent lors de l'exécution de FitGen.exe sous Windows japonais
Lors de la recherche de plusieurs dans un tableau Java
Kick ShellScript sur le serveur depuis Java
Erreur de mise en œuvre lors de la mise en œuvre de la validation Spring
Chemin relatif lors de l'exécution de Tomcat sur Eclipse
Obtenir l'historique du serveur Zabbix en Java
Création d'applications Web Java sur Windows Server 2016
Créer un serveur d'applications Web (Java) sur VPS
Placez le projet Java à l'aide de la base de données sur le serveur créé dans VPS jusqu'à présent
Erreur 407 lors de la tentative d'accès au site HTTPS via un proxy authentifié en Java
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
Créons une application TODO avec Java 12 Processing lorsqu'une requête arrive avec une HttpMethod inutilisée ・ Traitement lorsqu'une erreur se produit sur le serveur