J'ai une situation dans laquelle je veux écrire tous les journaux que j'ai créés dans un fichier texte.
Nous utilisons l'API java.util.logging.Logger pour générer les journaux.
J'ai essayé:
private static Logger logger = Logger.getLogger(className.class.getName());
FileHandler fh;
fh = new FileHandler("C:/className.log");
logger.addHandler(fh);
Mais toujours obtenir mes journaux sur la console uniquement ...
Réponses:
Essayez cet exemple. Ça marche pour moi.
Produit la sortie sur MyLogFile.log
Éditer:
Pour supprimer le gestionnaire de console, utilisez
puisque le ConsoleHandler est enregistré avec le logger parent dont tous les loggers dérivent.
la source
FileHandler(path, true)
pour ajouter le journal au fichier journal existant.Premièrement, où avez-vous défini votre enregistreur et à partir de quelle classe \ méthode essayant de l'appeler? Il y a un exemple de travail, fraîchement cuit:
Dans votre code, vous avez oublié de définir le formateur, si vous en avez besoin, vous pouvez le faire comme je l'ai mentionné ci-dessus, mais il y a une autre option, vous pouvez le formater vous-même, il y a un exemple (insérez-le simplement à la place de cette ligne fh .setFormatter (nouveau code SimpleFormatter ()) suivant):
Ou toute autre modification que vous aimez. J'espère que ça aide.
la source
L'emplacement du fichier journal peut être contrôlé via le fichier logging.properties. Et il peut être passé comme paramètre JVM ex:
java -Djava.util.logging.config.file=/scratch/user/config/logging.properties
Détails: https://docs.oracle.com/cd/E23549_01/doc.1111/e14568/handler.htm
Configuration du gestionnaire de fichiers
Pour envoyer des journaux à un fichier, ajoutez FileHandler à la propriété handlers dans le fichier logging.properties. Cela activera la journalisation des fichiers au niveau mondial.
handlers= java.util.logging.FileHandler
Configurez le gestionnaire en définissant les propriétés suivantes:java.util.logging.FileHandler.pattern spécifie l'emplacement et le modèle du fichier de sortie. Le paramètre par défaut est votre répertoire personnel.
java.util.logging.FileHandler.limit spécifie, en octets, le montant maximal que l'enregistreur écrit à un seul fichier.
java.util.logging.FileHandler.count spécifie le nombre de fichiers de sortie à parcourir.
java.util.logging.FileHandler.formatter spécifie la classe de formateur java.util.logging que la classe de gestionnaire de fichiers utilise pour formater les messages du journal. SimpleFormatter écrit de brefs résumés «lisibles par l'homme» des enregistrements de journal.
Pour demander à java d'utiliser ce fichier de configuration au lieu de $ JDK_HOME / jre / lib / logging.properties:
la source
Une bonne bibliothèque disponible nommée log4j pour Java .
Cela fournira de nombreuses fonctionnalités. Passez par le lien et vous trouverez votre solution.
la source
C'est peut - être ce dont vous avez besoin ...
la source
la source
la source
J'espère que les gens trouveront cela utile
la source
Voici ma classe de journalisation basée sur la réponse acceptée :
la source
Voici un exemple de la façon d'écraser la configuration de l'enregistreur à partir du code. Ne nécessite pas de fichier de configuration externe.
FileLoggerTest.java:
MyLogHandler.java
la source