// 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){} } } |