对任何一个系统,一个强大的日志记录功能是相当重要且必要的,根据日志的记录可以及时掌握系统运行时的健康状态及故障定位。然而作为web容器存在另外一种日志——访问日志。访问日志一般会记录客户端的访问相关信息,包括客户端ip、请求时间、请求协议、请求方法、请求字节数、响应码、会话id、处理时间等等。通过访问日志可以统计访问用户的数量、访问时间分布等规律及个人爱好等等,而这些数据可以帮助公司在运营策略上做出抉择。
如果让你来设计一个访问日志组件你会如何来设计?你应该很快就会想到访问日志的核心功能就是将信息记录下来,至于要记录到哪里、以哪种形式来记录我们先不管,于是很快想到面向接口编程定义一个接口AccessLog,方法名就命名为log吧,需要传递参数包含请求对象和响应对象,如下,
public interface AccessLog {
public void log(Request request, Response response);
}
定义一个好的接口是一个良好的开始,接下去要考虑的事是需