|
// SessionListener.java
import java.io.*; import java.util.*; import javax.servlet.http.*;
//监听登录的整个过程 public class SessionListener implements HttpSessionBindingListener {
public String privateInfo=""; //生成监听器的初始化参数字符串 private String logString=""; //日志记录字符串 private int count=0; //登录人数计数器
public SessionListener(String info){ this.privateInfo=info; }
public int getCount(){ return count; }
public void valueBound(HttpSessionBindingEvent event) { count++; if (privateInfo.equals("count")) { return; } try{ Calendar calendar=new GregorianCalendar(); System.out.println("LOGIN:"+privateInfo+" TIME:"+calendar.getTime()); logString="\nLOGIN:"+privateInfo+" TIME:"+calendar.getTime()+"\n"; for(int i=1;i<1000;i++){ File file=new File("yeeyoo.log"+i); if(!(file.exists())) file.createNewFile(); //如果文件不存在,创建此文件 if(file.length()>1048576) //如果文件大于1M,重新创建一个文件 continue; FileOutputStream foo=new FileOutputStream("yeeyoo.log"+i,true);//以append方式打开创建文件 foo.write(logString.getBytes(),0,logString.length()); //写入日志字符串 foo.close(); break;//退出 } }catch(FileNotFoundException e){} catch(IOException e){} }
public void valueUnbound(HttpSessionBindingEvent event) { count--; if (privateInfo.equals("count")) { return; } try{ Calendar calendar=new GregorianCalendar(); System.out.println("LOGOUT:"+privateInfo+" TIME:"+calendar.getTime()); logString="\nLOGOUT:"+privateInfo+" TIME:"+calendar.getTime()+"\n"; for(int i=1;i<1000;i++){ File file=new File("yeeyoo.log"+i); if(!(file.exists())) file.createNewFile(); //如果文件不存在,创建此文件 if(file.length()>1048576) //如果文件大于1M,重新创建一个文件 continue; FileOutputStream foo=new FileOutputStream("yeeyoo.log"+i,true);//以append方式打开创建文件 foo.write(logString.getBytes(),0,logString.length()); //写入日志字符串 foo.close(); break;//退出 } }catch(FileNotFoundException e){} catch(IOException e){} }
} |