Le moyen le plus simple de générer des journaux en Java à l'aide de SimpleFormatter et XMLFormatter de java.util.logging
Publié: 2020-05-26
Java est livré avec de nombreux utilitaires. Dans ce tutoriel, nous allons passer en revue la manière la plus simple de générer des fichiers journaux à l'aide SimpleFormatter
et XMLFormatter
.
Sur Crunchify, nous avons publié quelques tutoriels sur la journalisation il y a quelque temps.
- Configuration correcte de log4j.properties
- Utilitaire Log4j prêt à l'emploi pour votre projet de production
- Créez votre propre niveau de journalisation
Aujourd'hui, je travaillais sur la configuration d' Elastic FileBeats
sur mon hôte et je voulais générer des journaux pouvant être récupérés par Elastic FileBeats lors de l'exécution.
J'ai rapidement créé un utilitaire généré par le journal et je voulais partager la même chose avec vous tous. Nous utiliserons l'utilitaire java.util.logging
intégré de Java.
CrunchifyLogGenerator.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
package crunchify . com . tutorial ; import java . io . IOException ; import java . util . logging . FileHandler ; import java . util . logging . Logger ; import java . util . logging . SimpleFormatter ; import java . util . logging . XMLFormatter ; /** * @author Crunchify.com * Version: 1.0 * Simplest way to generate logs files using SimpleFormatter and XMLFormatter */ public class CrunchifyLogGenerator { public static void main ( String [ ] args ) { // A Logger object is used to log messages for a specific system or application // component. Loggers are normally named, using a hierarchical dot-separated // namespace. Logger names can be arbitrary strings, but they should normally be // based on the package name or class name of the logged component, such as // java.net or javax.swing. In addition it is possible to create "anonymous" // Loggers that are not stored in the Logger namespace. Logger crunchifyLogger = Logger . getLogger ( "crunchifyLog" ) ; // Simple file logging Handler. FileHandler crunchifyFileHandler ; try { // We are setting handler to true = append data to file crunchifyFileHandler = new FileHandler ( "/Users/ashah/crunchify/crunchify-log.log" , true ) ; crunchifyLogger . addHandler ( crunchifyFileHandler ) ; // Print a brief summary of the LogRecord in a human readable format. SimpleFormatter formatter = new SimpleFormatter ( ) ; crunchifyFileHandler . setFormatter ( formatter ) ; // Format a LogRecord into a standard XML format. Uncomment below 2 lines to see XML result. // XMLFormatter formatter2 = new XMLFormatter(); // crunchifyFileHandler.setFormatter(formatter2); int n = 1 ; // infinite loop while ( true ) { // Log an INFO message. crunchifyLogger . info ( "Adding Crunchify Log line: " + n ) ; Thread . sleep ( 1000 ) ; n ++ ; } } catch ( SecurityException e ) { e . printStackTrace ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } catch ( InterruptedException e ) { e . printStackTrace ( ) ; } } } |
Comme vous le voyez dans le programme ci-dessus, j'ai commenté ci- below 2 lines
. Une fois que vous avez exécuté le programme ci-dessus, décommentez sous deux lignes et vous verrez le résultat XML.
1 2 |
// XMLFormatter formatter2 = new XMLFormatter(); // crunchifyFileHandler.setFormatter(formatter2); |
Exécutez simplement le programme ci-dessus en tant qu'application Java et vous verrez les lignes ci-dessous ajoutées à votre fichier journal spécifié.
Sortie console Eclipse :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
Jan 27 , 2019 7 : 04 : 11 PM crunchify . com . tutorial . CrunchifyLogGenerator main INFO : Adding Crunchify Log line : 3 Jan 27 , 2019 7 : 04 : 12 PM crunchify . com . tutorial . CrunchifyLogGenerator main INFO : Adding Crunchify Log line : 4 Jan 27 , 2019 7 : 04 : 13 PM crunchify . com . tutorial . CrunchifyLogGenerator main INFO : Adding Crunchify Log line : 5 Jan 27 , 2019 7 : 04 : 14 PM crunchify . com . tutorial . CrunchifyLogGenerator main INFO : Adding Crunchify Log line : 6 <? xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> < ! DOCTYPE log SYSTEM "logger.dtd" > < log > < record > < date > 2019 - 01 - 27T19 : 07 : 37 < / date > < millis > 1548637657211 < / millis > < sequence > 0 < / sequence > < logger > crunchifyLog < / logger > < level > INFO < / level > < class > crunchify . com . tutorial . CrunchifyLogGenerator < / class > < method > main < / method > < thread > 1 < / thread > < message > Adding Crunchify Log line : 1 < / message > < / record > < record > < date > 2019 - 01 - 27T19 : 07 : 38 < / date > < millis > 1548637658233 < / millis > < sequence > 1 < / sequence > < logger > crunchifyLog < / logger > < level > INFO < / level > < class > crunchify . com . tutorial . CrunchifyLogGenerator < / class > < method > main < / method > < thread > 1 < / thread > < message > Adding Crunchify Log line : 2 < / message > < / record > < record > < date > 2019 - 01 - 27T19 : 07 : 39 < / date > < millis > 1548637659236 < / millis > < sequence > 2 < / sequence > < logger > crunchifyLog < / logger > < level > INFO < / level > < class > crunchify . com . tutorial . CrunchifyLogGenerator < / class > < method > main < / method > < thread > 1 < / thread > < message > Adding Crunchify Log line : 3 < / message > < / record > < record > < date > 2019 - 01 - 27T19 : 07 : 40 < / date > < millis > 1548637660244 < / millis > < sequence > 3 < / sequence > < logger > crunchifyLog < / logger > < level > INFO < / level > < class > crunchify . com . tutorial . CrunchifyLogGenerator < / class > < method > main < / method > < thread > 1 < / thread > < message > Adding Crunchify Log line : 4 < / message > < / record > |
J'espère que vous trouverez cet utilitaire utile pour votre projet. Si vous rencontrez un problème pour exécuter ceci, faites-le moi savoir.
