<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FLog%2FLog_Handler</id>
		<title>Java Tutorial/Log/Log Handler - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FLog%2FLog_Handler"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Log/Log_Handler&amp;action=history"/>
		<updated>2026-04-23T14:04:21Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Log/Log_Handler&amp;diff=4264&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Log/Log_Handler&amp;diff=4264&amp;oldid=prev"/>
				<updated>2010-06-01T05:01:13Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Log/Log_Handler&amp;diff=4263&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Log/Log_Handler&amp;diff=4263&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add Multiple Handlers to a logger ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.ConsoleHandler;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static Logger logger = Logger.getLogger(&amp;quot;MultipleHandlers2&amp;quot;);&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileHandler logFile = new FileHandler(&amp;quot;MultipleHandlers2.xml&amp;quot;);&lt;br /&gt;
    logger.addHandler(logFile);&lt;br /&gt;
    logger.addHandler(new ConsoleHandler());&lt;br /&gt;
    logger.setUseParentHandlers(false);&lt;br /&gt;
    logger.warning(&amp;quot;Output to multiple handlers&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  A file handler that appends. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    boolean append = true;&lt;br /&gt;
    FileHandler handler = new FileHandler(&amp;quot;my.log&amp;quot;, append);&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Alternate XML by using FileHandler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileHandler handler = new FileHandler(&amp;quot;alterxml.xml&amp;quot;);&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;your.logging&amp;quot;);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
    logger.log(Level.INFO, &amp;quot;alternative xml&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a memory handler with a memory of 100 records and dumps the records into the file my.log ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.MemoryHandler;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileHandler fhandler = new FileHandler(&amp;quot;my.log&amp;quot;);&lt;br /&gt;
    int numRec = 100;&lt;br /&gt;
    MemoryHandler mhandler = new MemoryHandler(fhandler, numRec, Level.OFF) {&lt;br /&gt;
      public synchronized void publish(LogRecord record) {&lt;br /&gt;
        super.publish(record);&lt;br /&gt;
        push();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(mhandler);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Flush File Handler and Logger ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileHandler handler = null;&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;logging&amp;quot;);&lt;br /&gt;
    handler = new FileHandler(&amp;quot;pattern&amp;quot;, 1000, 2);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
    LogRecord record = new LogRecord(Level.INFO, &amp;quot;Logged in a file...&amp;quot;);&lt;br /&gt;
    logger.log(record);&lt;br /&gt;
    handler.flush();&lt;br /&gt;
    handler.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How to write custom handler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.logging.Handler;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static Logger logger = Logger.getLogger(&amp;quot;CustomHandler&amp;quot;);&lt;br /&gt;
  private static List strHolder = new ArrayList();&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    logger.addHandler(new Handler() {&lt;br /&gt;
      public void publish(LogRecord logRecord) {&lt;br /&gt;
        strHolder.add(logRecord.getLevel() + &amp;quot;:&amp;quot;);&lt;br /&gt;
        strHolder.add(logRecord.getSourceClassName() + &amp;quot;:&amp;quot;);&lt;br /&gt;
        strHolder.add(logRecord.getSourceMethodName() + &amp;quot;:&amp;quot;);&lt;br /&gt;
        strHolder.add(&amp;quot;&amp;lt;&amp;quot; + logRecord.getMessage() + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        strHolder.add(&amp;quot;\n&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void flush() {&lt;br /&gt;
      }&lt;br /&gt;
      public void close() {&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    logger.warning(&amp;quot;Logging Warning&amp;quot;);&lt;br /&gt;
    logger.info(&amp;quot;Logging Info&amp;quot;);&lt;br /&gt;
    System.out.print(strHolder);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Limiting the Size of a Log by Using a Rotating Sequence of Files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Create a file handler that uses 3 logfiles, each with a limit of 1Mbyte&lt;br /&gt;
    String pattern = &amp;quot;my%g.log&amp;quot;;&lt;br /&gt;
    int limit = 1000000; // 1 Mb&lt;br /&gt;
    int numLogFiles = 3;&lt;br /&gt;
    FileHandler fh = new FileHandler(pattern, limit, numLogFiles);&lt;br /&gt;
    // Add to logger&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(fh);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Limiting the Size of a Log File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Create a file handler with a limit of 1 megabytes&lt;br /&gt;
    String pattern = &amp;quot;my.log&amp;quot;;&lt;br /&gt;
    int limit = 1000000; // 1 Mb&lt;br /&gt;
    FileHandler fh = new FileHandler(&amp;quot;my.log&amp;quot;, limit, 1);&lt;br /&gt;
    // Add to logger&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(fh);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Memory Handler Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.ConsoleHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.MemoryHandler;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;your.logging&amp;quot;);&lt;br /&gt;
    ConsoleHandler handler = new ConsoleHandler();&lt;br /&gt;
    MemoryHandler mHandler = new MemoryHandler(handler, 10, Level.ALL);&lt;br /&gt;
    logger.addHandler(mHandler);&lt;br /&gt;
    logger.setUseParentHandlers(false);&lt;br /&gt;
    LogRecord record1 = new LogRecord(Level.SEVERE, &amp;quot;This is SEVERE level message&amp;quot;);&lt;br /&gt;
    LogRecord record2 = new LogRecord(Level.WARNING, &amp;quot;This is WARNING level message&amp;quot;);&lt;br /&gt;
    logger.log(record1);&lt;br /&gt;
    logger.log(record2);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Socket Handler Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.SocketHandler;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) throws Exception{&lt;br /&gt;
    SocketHandler handler = null;&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;your.logging&amp;quot;);&lt;br /&gt;
    handler = new SocketHandler(&amp;quot;127.0.0.1&amp;quot;, 8080);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
    logger.warning(&amp;quot;SocketHandler is working...&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Stream Handler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.SimpleFormatter;&lt;br /&gt;
import java.util.logging.StreamHandler;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;logging&amp;quot;);&lt;br /&gt;
    OutputStream outStream = System.out;&lt;br /&gt;
    StreamHandler handler = new StreamHandler(outStream, new SimpleFormatter());&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
    logger.setUseParentHandlers(false);&lt;br /&gt;
    logger.info(&amp;quot;StreamHandler is working�&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Patterns in FileHandler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Expression       Meaning&lt;br /&gt;
/                The path separator of the local OS&lt;br /&gt;
%t               A directory suitable for storing temporary logging files, such as the temp directory of the OS&lt;br /&gt;
%h               A directory such as the &amp;quot;user.home&amp;quot; location, which is suitable to store user-specific data in the system&lt;br /&gt;
%g               A log generation number to rotate log files&lt;br /&gt;
%u               A number to make a log file unique to avoid any conflicts&lt;br /&gt;
%%               A literal percent sign&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use ConsoleHandler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.ConsoleHandler;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static Logger logger = Logger.getLogger(&amp;quot;MultipleHandlers&amp;quot;);&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileHandler logFile = new FileHandler(&amp;quot;MultipleHandlers.xml&amp;quot;);&lt;br /&gt;
    logger.addHandler(logFile);&lt;br /&gt;
    logger.addHandler(new ConsoleHandler());&lt;br /&gt;
    logger.warning(&amp;quot;Output to multiple handlers&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use Logger with simple formatter and FileHander ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.SimpleFormatter;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;MyLog&amp;quot;);&lt;br /&gt;
    FileHandler fh;&lt;br /&gt;
    fh = new FileHandler(&amp;quot;c:\\MyLogFile.log&amp;quot;, true);&lt;br /&gt;
    logger.addHandler(fh);&lt;br /&gt;
    logger.setLevel(Level.ALL);&lt;br /&gt;
    SimpleFormatter formatter = new SimpleFormatter();&lt;br /&gt;
    fh.setFormatter(formatter);&lt;br /&gt;
    logger.log(Level.WARNING, &amp;quot;My first log&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using FileHandler to log a message ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogManager;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.XMLFormatter;&lt;br /&gt;
public class LoggingExample1 {&lt;br /&gt;
  public static void main(String args[])  {&lt;br /&gt;
    try {&lt;br /&gt;
      LogManager lm = LogManager.getLogManager();&lt;br /&gt;
      Logger logger;&lt;br /&gt;
      FileHandler fh = new FileHandler(&amp;quot;log_test.txt&amp;quot;);&lt;br /&gt;
      logger = Logger.getLogger(&amp;quot;LoggingExample1&amp;quot;);&lt;br /&gt;
      lm.addLogger(logger);&lt;br /&gt;
      logger.setLevel(Level.INFO);&lt;br /&gt;
      fh.setFormatter(new XMLFormatter());&lt;br /&gt;
      logger.addHandler(fh);&lt;br /&gt;
       //logger.setUseParentHandlers(false);&lt;br /&gt;
      logger.log(Level.INFO, &amp;quot;test 1&amp;quot;);&lt;br /&gt;
      logger.log(Level.INFO, &amp;quot;test 2&amp;quot;);&lt;br /&gt;
      logger.log(Level.INFO, &amp;quot;test 3&amp;quot;);&lt;br /&gt;
      fh.close();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.out.println(&amp;quot;Exception thrown: &amp;quot; + e);&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using Regular Expressions based on StreamHandler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.Handler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.StreamHandler;&lt;br /&gt;
import java.util.regex.Matcher;&lt;br /&gt;
import java.util.regex.Pattern;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Logger log = Logger.getAnonymousLogger();&lt;br /&gt;
    setLoggerhandler(log);&lt;br /&gt;
    log.finest(new Exception().toString());&lt;br /&gt;
  }&lt;br /&gt;
  public static void setLoggerhandler(Logger logger) {&lt;br /&gt;
    Handler handler = new ExceptionHandler();&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
    logger.setLevel(Level.ALL);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ExceptionHandler extends StreamHandler {&lt;br /&gt;
  public void publish(LogRecord record) {&lt;br /&gt;
    String msg = record.getMessage();&lt;br /&gt;
    int exceptionIndex = msg.indexOf(&amp;quot;Exception&amp;quot;);&lt;br /&gt;
    if (exceptionIndex &amp;gt; -1) {&lt;br /&gt;
      Pattern pattern = Pattern.rupile(&amp;quot;(.*Exception.*)&amp;quot;);&lt;br /&gt;
      Matcher matcher = pattern.matcher(msg);&lt;br /&gt;
      if (matcher != null &amp;amp;&amp;amp; matcher.find()) {&lt;br /&gt;
        String err = &amp;quot;EXCEPTION FOUND &amp;quot; + matcher.group(1);&lt;br /&gt;
        System.out.println(err);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Window Handler: display log message in a window(JFrame) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.ErrorManager;&lt;br /&gt;
import java.util.logging.Filter;&lt;br /&gt;
import java.util.logging.Formatter;&lt;br /&gt;
import java.util.logging.Handler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.LogManager;&lt;br /&gt;
import java.util.logging.LogRecord;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.SimpleFormatter;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
class LogWindow extends JFrame {&lt;br /&gt;
  private JTextArea textArea = new JTextArea();&lt;br /&gt;
  public LogWindow() {&lt;br /&gt;
    super(&amp;quot;&amp;quot;);&lt;br /&gt;
    setSize(300, 300);&lt;br /&gt;
    add(new JScrollPane(textArea));&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void showInfo(String data) {&lt;br /&gt;
    textArea.append(data);&lt;br /&gt;
    this.validate();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class WindowHandler extends Handler {&lt;br /&gt;
  private LogWindow window = null;&lt;br /&gt;
  private Formatter formatter = null;&lt;br /&gt;
  private Level level = null;&lt;br /&gt;
  private static WindowHandler handler = null;&lt;br /&gt;
  private WindowHandler() {&lt;br /&gt;
    LogManager manager = LogManager.getLogManager();&lt;br /&gt;
    String className = this.getClass().getName();&lt;br /&gt;
    String level = manager.getProperty(className + &amp;quot;.level&amp;quot;);&lt;br /&gt;
    setLevel(level != null ? Level.parse(level) : Level.INFO);&lt;br /&gt;
    if (window == null)&lt;br /&gt;
      window = new LogWindow();&lt;br /&gt;
  }&lt;br /&gt;
  public static synchronized WindowHandler getInstance() {&lt;br /&gt;
    if (handler == null) {&lt;br /&gt;
      handler = new WindowHandler();&lt;br /&gt;
    }&lt;br /&gt;
    return handler;&lt;br /&gt;
  }&lt;br /&gt;
  public synchronized void publish(LogRecord record) {&lt;br /&gt;
    String message = null;&lt;br /&gt;
    if (!isLoggable(record))&lt;br /&gt;
      return;&lt;br /&gt;
    message = getFormatter().format(record);&lt;br /&gt;
    window.showInfo(message);&lt;br /&gt;
  }&lt;br /&gt;
  public void close() {&lt;br /&gt;
  }&lt;br /&gt;
  public void flush() {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  private WindowHandler handler = null;&lt;br /&gt;
  private Logger logger = null;&lt;br /&gt;
  public Main() {&lt;br /&gt;
    handler = WindowHandler.getInstance();&lt;br /&gt;
    logger = Logger.getLogger(&amp;quot;logging.handler&amp;quot;);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
  }&lt;br /&gt;
  public void logMessage() {&lt;br /&gt;
    logger.info(&amp;quot;Hello from ...&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Main demo = new Main();&lt;br /&gt;
    demo.logMessage();&lt;br /&gt;
    WindowHandler h = WindowHandler.getInstance();&lt;br /&gt;
    LogRecord r = new LogRecord(Level.WARNING, &amp;quot;The Handler publish method...&amp;quot;);&lt;br /&gt;
    h.publish(r);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Log Records Only After a Condition Occurs ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import java.util.logging.MemoryHandler;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileHandler fhandler = new FileHandler(&amp;quot;my.log&amp;quot;);&lt;br /&gt;
    int numRec = 100;&lt;br /&gt;
    MemoryHandler mhandler = new MemoryHandler(fhandler, numRec, Level.SEVERE);&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(mhandler);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Log Records to a Log File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.FileHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileHandler handler = new FileHandler(&amp;quot;my.log&amp;quot;);&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Log Records to Standard Error ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.logging.ConsoleHandler;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    ConsoleHandler handler = new ConsoleHandler();&lt;br /&gt;
    // Add to logger&lt;br /&gt;
    Logger logger = Logger.getLogger(&amp;quot;com.mycompany&amp;quot;);&lt;br /&gt;
    logger.addHandler(handler);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>