1 32 33 package websphinx; 34 35 import java.io.File ; 36 import java.io.OutputStream ; 37 import java.io.IOException ; 38 import java.util.Date ; 39 import java.io.PrintWriter ; 41 45 46 51 public class EventLog implements CrawlListener, LinkListener { 52 53 PrintWriter stream; 55 59 boolean onlyNetworkEvents = true; 60 61 64 public EventLog () { 65 this (System.out); 66 } 67 68 71 public EventLog (OutputStream out) { 72 75 stream = new PrintWriter (out, true); 77 } 79 80 84 public EventLog (String filename) throws IOException { 85 88 stream = new PrintWriter (Access.getAccess ().writeFile (new File (filename), false)); 90 } 92 93 100 public void setOnlyNetworkEvents (boolean flag) { 101 onlyNetworkEvents = flag; 102 } 103 110 public boolean getOnlyNetworkEvents () { 111 return onlyNetworkEvents; 112 } 113 114 117 public void started (CrawlEvent event) { 118 stream.println (new Date () + ": *** started " + event.getCrawler()); 119 } 120 121 124 public void stopped (CrawlEvent event) { 125 stream.println (new Date () + ": *** finished " + event.getCrawler()); 126 } 127 128 131 public void cleared (CrawlEvent event) { 132 stream.println (new Date () + ": *** cleared " + event.getCrawler()); 133 } 134 135 138 public void timedOut (CrawlEvent event) { 139 stream.println (new Date () + ": *** timed out " + event.getCrawler()); 140 } 141 142 145 public void paused (CrawlEvent event) { 146 stream.println (new Date () + ": *** paused " + event.getCrawler()); 147 } 148 149 152 public void crawled (LinkEvent event) { 153 switch (event.getID()) { 154 case LinkEvent.RETRIEVING: 155 case LinkEvent.DOWNLOADED: 156 case LinkEvent.VISITED: 157 case LinkEvent.ERROR: 158 break; 159 default: 160 if (onlyNetworkEvents) 161 return; 162 break; 163 } 164 stream.println (new Date () + ": " 165 + event); 166 167 Throwable exc = event.getException(); 168 if (exc != null && ! (exc instanceof IOException )) 169 exc.printStackTrace (stream); 170 } 171 172 177 public static EventLog monitor (Crawler crawler) { 178 EventLog logger = new EventLog (System.err); 179 crawler.addCrawlListener (logger); 180 crawler.addLinkListener (logger); 181 return logger; 182 } 183 } 184 | Popular Tags |