Самый простой способ создания журналов в Java с использованием SimpleFormatter и XMLFormatter java.util.logging.
Опубликовано: 2020-05-26
Java поставляется с множеством утилит. В этом руководстве мы рассмотрим простейший способ создания файлов журнала с использованием SimpleFormatter
и XMLFormatter
.
На Crunchify мы опубликовали несколько руководств по ведению журнала некоторое время назад.
- Правильно настроил log4j.properties
- Готовая к использованию утилита Log4j для вашего производственного проекта
- Создайте свой собственный уровень ведения журнала
Сегодня я работал над настройкой Elastic FileBeats
на своем хосте и хотел создать журналы, которые Elastic FileBeats может получать во время выполнения.
Я быстро создал утилиту для создания журнала и хотел поделиться ею со всеми вами. Мы будем использовать встроенную в Java утилиту 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 ( ) ; } } } |
Как вы видите в приведенной выше программе, я закомментировал below 2 lines
. После того, как вы запустите вышеуказанную программу, раскомментируйте две строки ниже, и вы увидите результат XML.
1 2 |
// XMLFormatter formatter2 = new XMLFormatter(); // crunchifyFileHandler.setFormatter(formatter2); |
Просто запустите вышеуказанную программу как Java-приложение, и вы увидите строки ниже, добавленные в указанный вами файл журнала.
Вывод консоли 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 > |
Я надеюсь, что вы найдете эту утилиту полезной для вашего проекта. Если у вас возникнут какие-либо проблемы с запуском этого, дайте мне знать.
