| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.log4j.gui.examples; |
| |
| import javax.swing.*; |
| import java.awt.*; |
| import java.awt.event.*; |
| |
| import org.apache.log4j.*; |
| import org.apache.log4j.gui.TextPanelAppender; |
| |
| public class LogTextPanelExample { |
| boolean packFrame = false; |
| |
| String catName = "dum.cat.name"; |
| |
| public LogTextPanelExample() { |
| |
| // setup the logging |
| TextPanelAppender tpa = new TextPanelAppender(new PatternLayout("%-5p %d [%t]: %m%n"), "logTextPanel"); |
| tpa.setThreshold(Priority.DEBUG); |
| Category cat = Category.getInstance(catName); |
| cat.addAppender(tpa); |
| |
| LogFrame frame = new LogFrame(tpa); |
| frame.validate(); |
| |
| //Center the frame (window), and show it |
| Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); |
| Dimension frameSize = frame.getSize(); |
| if (frameSize.height > screenSize.height) { |
| frameSize.height = screenSize.height; |
| } |
| if (frameSize.width > screenSize.width) { |
| frameSize.width = screenSize.width; |
| } |
| frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); |
| frame.setVisible(true); |
| } |
| |
| /**Main method*/ |
| public static void main(String[] args) { |
| try { |
| UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| } |
| catch(Exception e) { |
| e.printStackTrace(); |
| } |
| LogTextPanelExample foo = new LogTextPanelExample(); |
| new LogTextPanelExampleGenThread(foo.catName); |
| } |
| } |
| |
| class LogFrame extends JFrame { |
| |
| public LogFrame(TextPanelAppender tpa) { |
| enableEvents(AWTEvent.WINDOW_EVENT_MASK); |
| JPanel contentPane = (JPanel) this.getContentPane(); |
| contentPane.setLayout(new BorderLayout()); |
| this.setSize(new Dimension(600, 400)); |
| this.setTitle("LogTextPanel Example"); |
| contentPane.add(tpa.getLogTextPanel(), BorderLayout.CENTER); |
| } |
| |
| // exit when window is closed |
| protected void processWindowEvent(WindowEvent e) { |
| super.processWindowEvent(e); |
| if (e.getID() == WindowEvent.WINDOW_CLOSING) { |
| System.exit(0); |
| } |
| } |
| } |
| |
| class LogTextPanelExampleGenThread extends Thread { |
| |
| String catName; |
| |
| public LogTextPanelExampleGenThread(String catName) { |
| this.catName = catName; |
| this.setPriority(Thread.NORM_PRIORITY - 1); |
| this.start(); |
| } |
| |
| public void run() { |
| Category cat = Category.getInstance(catName); |
| int cnt = 0; |
| while(true) { |
| cnt++; |
| int randEvt = (int)(Math.random() * 125); |
| if(randEvt < 3) |
| cat.fatal("{" + cnt + "} Something screwed up bad."); |
| else if(randEvt < 10) |
| cat.error("{" + cnt + "} An error occured while trying to delete all of your files."); |
| else if(randEvt < 25) |
| cat.warn("{" + cnt + "} It seems as if your hard disk is getting full."); |
| else if(randEvt < 55) |
| cat.info("{" + cnt + "} It is now time for tea."); |
| else if(randEvt < 65) |
| cat.debug("{" + cnt + "} Something bad is happening on line 565 of com.foo.Crap"); |
| else if(randEvt < 75) |
| cat.debug("{" + cnt + "} Input value for xe343dd is not equal to xe39dfd!"); |
| else if(randEvt < 85) |
| cat.debug("{" + cnt + "} Successfully reached line 2312 of com.foo.Goo"); |
| else if(randEvt < 105) |
| cat.debug("{" + cnt + "} Here is some extra handy debugging information for you."); |
| else if(randEvt < 115) |
| cat.debug("{" + cnt + "} The file you are about to write to is not open."); |
| else if(randEvt < 125) |
| cat.debug("{" + cnt + "} The input value to the method was <null>."); |
| |
| try { |
| Thread.sleep(10); |
| } |
| catch(Exception e) {} |
| |
| } |
| } |
| } |