1 18 package org.drftpd.plugins; 19 20 import java.io.File ; 21 import java.io.FileOutputStream ; 22 import java.io.IOException ; 23 import java.io.PrintStream ; 24 import java.text.SimpleDateFormat ; 25 import java.util.Date ; 26 import java.util.Locale ; 27 28 import net.sf.drftpd.FatalException; 29 import net.sf.drftpd.event.Event; 30 import net.sf.drftpd.event.FtpListener; 31 import net.sf.drftpd.event.TransferEvent; 32 import net.sf.drftpd.master.ConnectionManager; 33 34 39 public class XferLog implements FtpListener { 40 41 public XferLog() { 42 super(); 43 new File ("logs").mkdirs(); 44 try { 45 _out = new PrintStream (new FileOutputStream ("logs/xferlog", true)); 47 } catch (IOException e) { 48 throw new FatalException(e); 49 } 50 } 51 52 public void actionPerformed(Event event) { 53 if (event instanceof TransferEvent) 54 actionPerformed((TransferEvent) event); 55 } 56 57 77 public static SimpleDateFormat DATE_FMT = 78 new SimpleDateFormat ("EEE MMM d HH:mm:ss yyyy", Locale.ENGLISH); 79 private PrintStream _out; 80 81 public void actionPerformed(TransferEvent event) { 82 char direction; 83 if (event.getCommand().equals("STOR")) { 84 direction = 'i'; 85 } else if (event.getCommand().equals("RETR")) { 86 direction = 'o'; 87 } else { 88 return; 89 } 90 91 char transferType; 92 if (event.getType() == 'I') { transferType = 'b'; 94 } else if (event.getType() == 'A') { transferType = 'a'; 96 } else { 97 throw new FatalException("Invalid transfer type"); 98 } 99 100 char completed = event.isComplete() ? 'c' : 'i'; 101 _out.println( 102 DATE_FMT.format(new Date (event.getTime())) 103 + " " 104 + event.getDirectory().getXfertime() / 1000 105 + " " 106 + event.getPeer().getHostName() 107 + " " 108 + event.getDirectory().length() 109 + " " 110 + event.getDirectory().getPath() 111 + " " 112 + transferType 113 + " _ " 114 + direction 115 + " r " 116 + event.getUser().getUsername() 117 + " " 118 + event.getUser().getGroupName() 119 + " 0 * " + completed); 121 } 122 123 public void init(ConnectionManager mgr) { 124 } 125 126 public void unload() { 127 } 128 129 } 130 | Popular Tags |