SlideShare a Scribd company logo

      
       Язык Java 
      
     
      
       Использование Logger 
       java.util.logging

      
       Введение 
      
     
      
       
        
         Logging API появился в JDK, начиная с версии 1.4 
        
       
       
        
         Предназначен для информирования разработчиков и администраторов о состоянии контролируемого объекта 
        
       
       
        
         API находится в пакете java.util.logging

      
       Классы, входящие в java.util.logging 
      
     
      
       
        
         ConsoleHandler 
        
       
       
        
         FileHandler 
        
       
       
        
         Filter 
        
       
       
        
         Formatter 
        
       
       
        
         Handler 
        
       
       
        
         Level 
        
       
       
        
         Logger 
        
       
       
        
         LoggingPermission 
        
       
       
        
         LogManager 
        
       
       
        
         LogRecord 
        
       
       
        
         MemoryHandler 
        
       
      
     
      
       
        
         SimpleFormatter 
        
       
       
        
         SocketHandler 
        
       
       
        
         StreamHandler 
        
       
       
        
         XMLFormatter

      
       Управление уровнем сообщений 
      
     
      
       
        
         Для указания уровней сообщений используется класс Level 
        
       
       
        
         Предопределенные уровни 
        
       
       
        
         
          
           SEVERE — наивысшее значение, наиболее значимое сообщение (например, фатальная ошибка) 
          
         
        
       
       
        
         
          
           WARNING — значение для предупреждений 
          
         
        
       
       
        
         
          
           INFO — информационные сообщения времени выполнения 
          
         
        
       
       
        
         
          
           CONFIG — информационные сообщения о конфигурации 
          
         
        
       
       
        
         
          
           FINE — используется для детализированного вывода информации при отладке 
          
         
        
       
       
        
         
          
           FINER — Еще более детализированное сообщение 
          
         
        
       
       
        
         
          
           FINEST — сообщение с наименьшим приоритетом для наиболее подробной информации 
          
         
        
       
       
        
         Добавочные значения ALL и OFF

      
       Использование класса Level 
      
     
      
       
        
         По умолчанию записываются сообщения с уровнем Level.INFO и выше  
        
       
       
        
         Для изменения уровня записи необходимо: 
        
       
       
        
         
          
           Поменять уровень записи Logger 
          
         
        
       
       
        
         
          
           Поменять уровень записи соответствующего Handler'а

      
       Класс Logger 
      
     
      
       
        
         public static synchronized Logger getLogger(String name) 
        
       
       
        
         public static synchronized Logger getAnonymousLogger() 
        
       
       
        
         public void setFilter(Filter newFilter) throws SecurityException 
        
       
       
        
         public Filter getFilter() 
        
       
       
        
         public void log(LogRecord record) 
        
       
       
        
         public void log(Level level, String msg) 
        
       
       
        
         public void log(Level level, String msg, Throwable thrown) 
        
       
       
        
         public void logp(Level level, String sourceClass, String sourceMethod, String msg) 
        
       
       
        
         public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown) 
        
       
       
        
         public void entering(String sourceClass, String sourceMethod) 
        
       
       
        
         public void exiting(String sourceClass, String sourceMethod) 
        
       
       
        
         public void throwing(String sourceClass, String sourceMethod, Throwable thrown) 
        
       
       
        
         public void severe(String msg) 
        
       
       
        
         public void warning(String msg)

      
       Класс Logger 
      
     
      
       
        
         public void info(String msg) 
        
       
       
        
         public void config(String msg) 
        
       
       
        
         public void fine(String msg) 
        
       
       
        
         public void finer(String msg) 
        
       
       
        
         public void finest(String msg) 
        
       
       
        
         public void setLevel(Level newLevel) throws SecurityException 
        
       
       
        
         public Level getLevel() 
        
       
       
        
         public boolean isLoggable(Level level) 
        
       
       
        
         public String getName() 
        
       
       
        
         public synchronized void addHandler(Handler handler) throws SecurityException 
        
       
       
        
         public synchronized void removeHandler(Handler handler) throws SecurityException 
        
       
       
        
         public synchronized Handler[] getHandlers() 
        
       
       
        
         public Logger getParent() 
        
       
       
        
         public void setParent(Logger parent)

      
       Объект LogManager 
      
     
      
       
        
         Центральный класс пакета logging 
        
       
       
        
         Обеспечивает контроль над журналированием 
        
       
       
        
         Позволяет выставлять различные уровни для разных частей программы 
        
       
       
        
         
          
           LogManager.setLevel(String name, Level level) 
          
         
        
       
       
        
         
          
           например, 
          
         
        
       
       
        
         
          
           
            
             LogManager.getLogManager().setLevel(«logging», Level.FINE) 
            
           
          
         
        
       
       
        
         Позволяет управлять handler'ами 
        
       
       
        
         Позволяет управлять logger'ами

      
       Методы класса LogManager 
      
     
      
       
        
         public static LogManager getLogManager() - получение глобального объекта LogManager 
        
       
       
        
         public synchronized boolean addLogger(Logger logger) — добавление именованного Logger'а.  
        
       
       
        
         public synchronized Logger getLogger(String name) — получение именованного Logger'а 
        
       
       
        
         public synchronized Enumeration<String> getLoggerNames()

      
       Класс LogRecord 
      
     
      
       
        
         public LogRecord(Level level, String msg) 
        
       
       
        
         public String getLoggerName() 
        
       
       
        
         public void setLoggerName(String name) 
        
       
       
        
         public Level getLevel() 
        
       
       
        
         public void setLevel(Level level)  
        
       
       
        
         public String getMessage() 
        
       
       
        
         public void setMessage(String message)

      
       Интерфейс Filter 
      
     
      
       
        
         public boolean isLoggable(LogRecord record); 
        
       
       
        
         Возвращает значения 
        
       
       
        
         
          
           true — если запись может быть добавлена в Logger 
          
         
        
       
       
        
         
          
           false — если запись не может быть добавлена в Logger

      
       Использование FileHandler 
      
     
      
       
        
         Для записи полученных сообщений в файл используется объект FileHandler 
        
       
       
        
         public FileHandler() throws IOException, SecurityException 
        
       
       
        
         public FileHandler(String pattern) throws IOException, SecurityException 
        
       
       
        
         
          
           Паттерн:  
          
         
        
       
       
        
         
          
           
            
             &quot;/&quot;  - разделитель пути 
            
           
          
         
        
       
       
        
         
          
           
            
             &quot;%t&quot; — системная временная директория 
            
           
          
         
        
       
       
        
         
          
           
            
             &quot;%h&quot;  - домашняя директория пользователя 
            
           
          
         
        
       
       
        
         
          
           
            
             &quot;%g&quot; — генерируемый номер для лог файла (ротация) 
            
           
          
         
        
       
       
        
         
          
           
            
             &quot;%u&quot; — уникальный номер для избежания конфликтов  
            
           
          
         
        
       
       
        
         
          
           
            
             &quot;%%&quot; - символ &quot;%&quot;

      
       Класс FileHandler 
      
     
      
       
        
         public FileHandler(String pattern, boolean append) throws IOException, SecurityException 
        
       
       
        
         public FileHandler(String pattern, int limit, int count), где limit — количество байт в файле, count — количество файлов 
        
       
       
        
         public FileHandler(String pattern, int limit, int count, boolean append) throws IOException, SecurityException 
        
       
       
        
         public synchronized void publish(LogRecord record) 
        
       
       
        
         public synchronized void close() throws SecurityException

      
       Класс ConsoleHandler 
      
     
      
       
        
         public ConsoleHandler() 
        
       
       
        
         public void publish(LogRecord record) 
        
       
       
        
         public void close()

      
       Пример использования 
      
     
      
       
        
         public class NewClass {   private static final Logger log=Logger.getLogger(NewClass.class.getName());   private FileHandler fh;   private ConsoleHandler ch;     public NewClass()   {   try {   fh = new FileHandler(&quot;%h/test.log&quot;, 1024, 10);   log.addHandler(fh);   } catch (IOException ex) {   Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);   } catch (SecurityException ex) {   Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);   }

      
       Пример использования 
      
     
      
       
        
         ch=new ConsoleHandler();   log.addHandler(ch);   ch.setFilter(new Filter() {   public boolean isLoggable(LogRecord record) {   return (record.getLevel().intValue()>=Level.WARNING.intValue());   }   });   fh.setFilter(new Filter() {   public boolean isLoggable(LogRecord record) {   return record.getLevel().intValue()>Level.FINEST.intValue();   }   });   log.setLevel(Level.FINEST);   }

      
       Пример использования 
      
     
      
       
        
         public void method1()   {   log.entering(NewClass.class.getName(), &quot;method1&quot;);try{   method2();   }catch(MyException e)   {   LogRecord lr=new LogRecord(Level.SEVERE,&quot;MyException was catched&quot;);   log.log(lr);   }   log.exiting(NewClass.class.getName(), &quot;method1&quot;);   }

      
       Пример использования 
      
     
      
       
        
         public void method2() throws MyException   {   if((((int)(Math.random()*100))&1)==0){   log.warning(&quot;It's Even!!!!&quot;);   throw new MyException(&quot;It's EVEN!!!&quot;);   }else{   log.info(&quot;It's odd!!!!!&quot;);   }   } public void method3()   {   LogManager lm=LogManager.getLogManager();   Enumeration<String> names=lm.getLoggerNames();   while(names.hasMoreElements())   {   System.out.println(names.nextElement());   }   } }

      
       Конец 
      
     
      
       Вопросы 
       e-mail: a.bovanenko@gmail.com

More Related Content

PPT
Java. Работа с файловой системой. Потоки ввода-вывода.
PPT
Аннотации в java
PPTX
Teorias relaciones humanas
PPTX
Presentacion teoria clasica de la administracion final
PPTX
Teoria del desarrollo_organizacional
PPT
2 Racionalidad
PPTX
2 semana LA ORGANIZACION FORMAL E INFORMAL
Java. Работа с файловой системой. Потоки ввода-вывода.
Аннотации в java
Teorias relaciones humanas
Presentacion teoria clasica de la administracion final
Teoria del desarrollo_organizacional
2 Racionalidad
2 semana LA ORGANIZACION FORMAL E INFORMAL

Viewers also liked (10)

PDF
Teoria del desarrollo organizacional
PPTX
Teoria Estructuralista De La AdministracióN
PDF
Tipos De Organizaciones
PPT
Teoria BurocráTica
PPT
Teoria neoclasica
PPTX
Teoría de Elton Mayo
PPTX
Teoria neoclasica
PPTX
Teoria de la burocracia
PPTX
Capital intelectual
PPTX
Teoria del desarrollo organizacional
Teoria Estructuralista De La AdministracióN
Tipos De Organizaciones
Teoria BurocráTica
Teoria neoclasica
Teoría de Elton Mayo
Teoria neoclasica
Teoria de la burocracia
Capital intelectual
Ad

More from Alexey Bovanenko (20)

PDF
Python sqlite3
PDF
Python. re
PDF
python dict
PDF
Python. Строки
PDF
Python. Введение
PPT
PPT
Конвертация строковых данных в числовые
ODP
PPT
Обработка символов в языке C
ODP
PPTX
Javascript functions
PPTX
Javascript String object
PDF
File. Java
ODP
ZIP, GZIP Streams in java
PDF
Конструктор копирования
PDF
Tempale Intro
PDF
transaction. php
PDF
cookie. support by php
PDF
php sessions
ODP
Java IO. Streams
Python sqlite3
Python. re
python dict
Python. Строки
Python. Введение
Конвертация строковых данных в числовые
Обработка символов в языке C
Javascript functions
Javascript String object
File. Java
ZIP, GZIP Streams in java
Конструктор копирования
Tempale Intro
transaction. php
cookie. support by php
php sessions
Java IO. Streams
Ad

Объект Logger

  • 1. Язык Java Использование Logger java.util.logging
  • 2. Введение Logging API появился в JDK, начиная с версии 1.4 Предназначен для информирования разработчиков и администраторов о состоянии контролируемого объекта API находится в пакете java.util.logging
  • 3. Классы, входящие в java.util.logging ConsoleHandler FileHandler Filter Formatter Handler Level Logger LoggingPermission LogManager LogRecord MemoryHandler SimpleFormatter SocketHandler StreamHandler XMLFormatter
  • 4. Управление уровнем сообщений Для указания уровней сообщений используется класс Level Предопределенные уровни SEVERE — наивысшее значение, наиболее значимое сообщение (например, фатальная ошибка) WARNING — значение для предупреждений INFO — информационные сообщения времени выполнения CONFIG — информационные сообщения о конфигурации FINE — используется для детализированного вывода информации при отладке FINER — Еще более детализированное сообщение FINEST — сообщение с наименьшим приоритетом для наиболее подробной информации Добавочные значения ALL и OFF
  • 5. Использование класса Level По умолчанию записываются сообщения с уровнем Level.INFO и выше Для изменения уровня записи необходимо: Поменять уровень записи Logger Поменять уровень записи соответствующего Handler'а
  • 6. Класс Logger public static synchronized Logger getLogger(String name) public static synchronized Logger getAnonymousLogger() public void setFilter(Filter newFilter) throws SecurityException public Filter getFilter() public void log(LogRecord record) public void log(Level level, String msg) public void log(Level level, String msg, Throwable thrown) public void logp(Level level, String sourceClass, String sourceMethod, String msg) public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown) public void entering(String sourceClass, String sourceMethod) public void exiting(String sourceClass, String sourceMethod) public void throwing(String sourceClass, String sourceMethod, Throwable thrown) public void severe(String msg) public void warning(String msg)
  • 7. Класс Logger public void info(String msg) public void config(String msg) public void fine(String msg) public void finer(String msg) public void finest(String msg) public void setLevel(Level newLevel) throws SecurityException public Level getLevel() public boolean isLoggable(Level level) public String getName() public synchronized void addHandler(Handler handler) throws SecurityException public synchronized void removeHandler(Handler handler) throws SecurityException public synchronized Handler[] getHandlers() public Logger getParent() public void setParent(Logger parent)
  • 8. Объект LogManager Центральный класс пакета logging Обеспечивает контроль над журналированием Позволяет выставлять различные уровни для разных частей программы LogManager.setLevel(String name, Level level) например, LogManager.getLogManager().setLevel(«logging», Level.FINE) Позволяет управлять handler'ами Позволяет управлять logger'ами
  • 9. Методы класса LogManager public static LogManager getLogManager() - получение глобального объекта LogManager public synchronized boolean addLogger(Logger logger) — добавление именованного Logger'а. public synchronized Logger getLogger(String name) — получение именованного Logger'а public synchronized Enumeration<String> getLoggerNames()
  • 10. Класс LogRecord public LogRecord(Level level, String msg) public String getLoggerName() public void setLoggerName(String name) public Level getLevel() public void setLevel(Level level) public String getMessage() public void setMessage(String message)
  • 11. Интерфейс Filter public boolean isLoggable(LogRecord record); Возвращает значения true — если запись может быть добавлена в Logger false — если запись не может быть добавлена в Logger
  • 12. Использование FileHandler Для записи полученных сообщений в файл используется объект FileHandler public FileHandler() throws IOException, SecurityException public FileHandler(String pattern) throws IOException, SecurityException Паттерн: &quot;/&quot; - разделитель пути &quot;%t&quot; — системная временная директория &quot;%h&quot; - домашняя директория пользователя &quot;%g&quot; — генерируемый номер для лог файла (ротация) &quot;%u&quot; — уникальный номер для избежания конфликтов &quot;%%&quot; - символ &quot;%&quot;
  • 13. Класс FileHandler public FileHandler(String pattern, boolean append) throws IOException, SecurityException public FileHandler(String pattern, int limit, int count), где limit — количество байт в файле, count — количество файлов public FileHandler(String pattern, int limit, int count, boolean append) throws IOException, SecurityException public synchronized void publish(LogRecord record) public synchronized void close() throws SecurityException
  • 14. Класс ConsoleHandler public ConsoleHandler() public void publish(LogRecord record) public void close()
  • 15. Пример использования public class NewClass { private static final Logger log=Logger.getLogger(NewClass.class.getName()); private FileHandler fh; private ConsoleHandler ch; public NewClass() { try { fh = new FileHandler(&quot;%h/test.log&quot;, 1024, 10); log.addHandler(fh); } catch (IOException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } catch (SecurityException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); }
  • 16. Пример использования ch=new ConsoleHandler(); log.addHandler(ch); ch.setFilter(new Filter() { public boolean isLoggable(LogRecord record) { return (record.getLevel().intValue()>=Level.WARNING.intValue()); } }); fh.setFilter(new Filter() { public boolean isLoggable(LogRecord record) { return record.getLevel().intValue()>Level.FINEST.intValue(); } }); log.setLevel(Level.FINEST); }
  • 17. Пример использования public void method1() { log.entering(NewClass.class.getName(), &quot;method1&quot;);try{ method2(); }catch(MyException e) { LogRecord lr=new LogRecord(Level.SEVERE,&quot;MyException was catched&quot;); log.log(lr); } log.exiting(NewClass.class.getName(), &quot;method1&quot;); }
  • 18. Пример использования public void method2() throws MyException { if((((int)(Math.random()*100))&1)==0){ log.warning(&quot;It's Even!!!!&quot;); throw new MyException(&quot;It's EVEN!!!&quot;); }else{ log.info(&quot;It's odd!!!!!&quot;); } } public void method3() { LogManager lm=LogManager.getLogManager(); Enumeration<String> names=lm.getLoggerNames(); while(names.hasMoreElements()) { System.out.println(names.nextElement()); } } }
  • 19. Конец Вопросы e-mail: [email protected]