TOMCAT4.0.3下的日志?????

cattiger 2002-05-09 03:56:18
请问各位有没有做过JSP日志的,我现在急需做一个,能否给介绍一下解决方案。
另外tomcat4.0.3里logs目录中的日志文件已与3.2大不相同,我大略看了一下,好像是每天每个访问的机器有一个日志文件,不知道是不是这样的,但文件里的每部分是什么意思我就不大清楚了,请各位解释一下,谢谢了。
有的文件里为
2002-05-09 15:57:07 jsp: init
有的为
2002-05-09 01:30:17 HttpProcessor[80][2] Invalid request URI: '/scripts/..%252f../winnt/system32/cmd.exe'
有的为
127.0.0.1 - - [09/May/2002:15:49:50 8000] "GET /ord/ord_attemper_body.jsp HTTP/1.1" 200 4147
...全文
42 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimjxr 2002-05-14
  • 打赏
  • 举报
回复
对新的Servlet引擎,你实现HttpSessionListener接口,然后把你的接口在配置文件中声明就可以在Session生成和消失时得到提示。但这个Session消失对非正常退出也是用超时的。
jimjxr 2002-05-13
  • 打赏
  • 举报
回复
嗯,Tomcat的日志不能解决用户非正常推出的问题,这个日志主要是Debug用的,用于流量监控也可以,做你要求的我觉得不太合适。非正常推出用Session超时不行吗?
cattiger 2002-05-13
  • 打赏
  • 举报
回复
以下是我做的一个测试:
import java.util.*;
public class UserList {
//所有的用户名
private HashMap UserList;

public UserList()
{
UserList = new HashMap();
}
/**
*取得一个包含当前用户信息的迭代器
*@return 包含当前用户名信息的Iterator类型对象
*@see java.util.Iterator
*/
public Iterator getUserList()
{
//将超时用户踢出列表
//removeOverdue();
//构建一个迭代嚣并返回
HashMap returnUserList = new HashMap(UserList);
Set returnUserSet = returnUserList.keySet();
Iterator returnUserIterator = returnUserSet.iterator();
return returnUserIterator;
}
/**
*监测用户是否在用户列表中
*/
public boolean isUserOnLine(String userName)
{
//将超时用户踢出列表
//removeOverdue();
return UserList.containsKey(userName);
}
/**
*将用户加入到此用户列表中
*@param userName 需要加入的用户名
*/
public void addUser(String id,String userName,String userPic)
{
//获得当前时间
Vector userInfo=new Vector(3);
Date dateTimeNow = new Date();
long longTimeNow = dateTimeNow.getTime();
Long longOTimeNow = new Long(longTimeNow);
userInfo.add(id);
userInfo.add(userPic);
userInfo.add(longOTimeNow);
//将用户最近一次发出的时间存储起来
UserList.put(userName,userInfo);
}
/*将用户踢出列表

*/
public void removeOverdue(String username)
{
UserList.remove(username);
}
}

不过有问题:(1)在JSP中调用时在一个窗口中能实现,但重开一个窗口登录,就不起作用了,换台机子试就更不用提了,怎么回事呢??
(2)我在注销页面中用removeOverdue方法怎么提示无此方法呢?
cattiger 2002-05-13
  • 打赏
  • 举报
回复
用Session超时不太好,我们有别的原因把Session时间设为2小时了。
这里有个方法:建立一个Application变量 i,记录某一用户名的当前session数。如果用户登陆则通过监听器知道,如果用户退出(不管是怎样退出,只要是该session丢失),也会通过监听器知道。这样就可以在登陆是给i加1,退出时减1了;
这里的关键是通过session的建立与取消监听来操作i值
但临听器怎么做呢????哪位能给个例子。
cattiger 2002-05-12
  • 打赏
  • 举报
回复
也不用很复杂的日志,只要能查询一个用户的登录信息(主要是登录时间,离开时间),然后能查询某一段时间有哪些用户登录了,就可以了。
用数据库做的话,有一个问题就是不能确定用户退出系统的准备时间(即非正常退出系统,如直接关闭浏览器,)并进行相应的一些操作。
我是最近才看到TOMCAT4的日志与以前不同了,所以想看看是不是用它会更好做些。
jimjxr 2002-05-12
  • 打赏
  • 举报
回复
init应该是jsp页面在做初始化。
日志的问题,我上面所说的是将程序运行状态记录下来的日志,一般包括时间和一段String。你的要求好像比较具体,似乎是用户行为的日志,能具体说说吗?用数据库记录有什么困难?
jimjxr 2002-05-11
  • 打赏
  • 举报
回复
你自己试验一下就知道了,比如在Tomcat的examples中随便找一个jsp文件,加上
<%
log( "This is a test" );
%>
然后调用这个页面,你在Tomcat的日志localhost_examples_log.xxx中就会看到This is a test这段话。
cattiger 2002-05-11
  • 打赏
  • 举报
回复
以前TOMCAT3.2的日志,很乱的,现在我们用4。0。2以后才发现日志文件已改了。本来想在登陆系统时写入数据库的,然后再从数据库分析日志。
cattiger 2002-05-11
  • 打赏
  • 举报
回复
我的localhost_xxxx_log.2002-05-11.txt中很多如下语句,其中init是什么意思。
2002-05-11 13:13:12 jsp: init
2002-05-11 13:13:51 jsp: init
2002-05-11 13:16:21 jsp: init
2002-05-11 13:17:58 jsp: init
2002-05-11 13:17:58 jsp: init
2002-05-11 13:17:58 jsp: init
2002-05-11 13:24:58 jsp: init
2002-05-11 13:28:59 jsp: init
2002-05-11 13:29:33 jsp: init
2002-05-11 13:31:19 jsp: init
2002-05-11 13:32:58 jsp: init
2002-05-11 13:33:17 jsp: init
2002-05-11 13:34:03 jsp: init
2002-05-11 13:40:47 jsp: init
2002-05-11 13:41:24 jsp: init
2002-05-11 13:41:51 jsp: init
2002-05-11 13:53:00 jsp: init
2002-05-11 14:01:13 jsp: init
2002-05-11 14:14:40 jsp: init
2002-05-11 14:17:02 jsp: init
2002-05-11 14:24:00 jsp: init
谢谢 jimjxr(宝宝猫),我已经试过了,可以的,
不过我现在是想分析日志,使其能够在网页上能够看到,并可根据用户名、登陆日期之类的查询日志。这怎么做呢??
cattiger 2002-05-10
  • 打赏
  • 举报
回复
各位能不能给个例子啊,我没见过这方面的东东
jimjxr 2002-05-10
  • 打赏
  • 举报
回复
这个是Servlet的日志方法,在Servlet中调用log("...");就可以把"..."写到Servlet引擎的日志中。JSP最后要编译成Servlet,所以log("...");也可以用,在<%...%>中写就可以了。
cattiger 2002-05-09
  • 打赏
  • 举报
回复
在线等待高手光临!
microsoft_windows 2002-05-09
  • 打赏
  • 举报
回复
今天不小心调乱server.xml,那个log有98兆,哈哈
cattiger 2002-05-09
  • 打赏
  • 举报
回复
在jsp中直接用log("...");这是用来干嘛的,怎么用呢,有什么地方介绍这东东吗?
jimjxr 2002-05-09
  • 打赏
  • 举报
回复
在jsp中直接用log("...");就可以向Servlet引擎的日志中写东西。Tomcat4的默认的日志是每天每个类别一个文件,类别包括几种:
catalina_log:最高层的日志
localhost_access_log:主机连接日志
localhost_log:所有Context的日志
localhost_xxx_log:某个Context的日志,如果你用log("...");就写到这个里面
这些都是在server.xml配置文件中配的,你可以看看。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧