Najprostszy sposób generowania logów w Javie za pomocą funkcji SimpleFormatter i XMLFormatter w java.util.logging
Opublikowany: 2020-05-26
Java zawiera wiele narzędzi. W tym samouczku omówimy najprostszy sposób generowania plików dziennika za pomocą SimpleFormatter
i XMLFormatter
.
Na Crunchify opublikowaliśmy kilka samouczków dotyczących logowania się jakiś czas wstecz.
- Skonfigurowany log4j.properties we właściwy sposób
- Gotowe do użycia narzędzie Log4j do Twojego projektu produkcyjnego
- Stwórz własny poziom logowania
Dzisiaj pracowałem nad konfiguracją Elastic FileBeats
na moim hoście i chciałem generować logi, które mogą być pobierane przez Elastic FileBeats w czasie wykonywania.
Szybko stworzyłem narzędzie do generowania logów i chciałem podzielić się nim z wami wszystkimi. Wykorzystamy wbudowane narzędzie java.util.logging
.
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 ( ) ; } } } |
Jak widać w powyższym programie, skomentowałem below 2 lines
. Po uruchomieniu powyższego programu odkomentuj poniżej dwie linie, a zobaczysz wynik XML.
1 2 |
// XMLFormatter formatter2 = new XMLFormatter(); // crunchifyFileHandler.setFormatter(formatter2); |
Po prostu uruchom powyższy program jako aplikację Java, a zobaczysz poniższe wiersze dodane do określonego pliku dziennika.
Dane wyjściowe konsoli 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 > |
Mam nadzieję, że ten program okaże się pomocny w Twoim projekcie. Jeśli napotkasz jakiś problem z uruchomieniem tego, daj mi znać.
