就我们自己的框架而言,每一次操作都会经过Controller(一个),而Controller会调用服务Service(可能有多个),每一次的请求情况和调用Service的情况都记录再日志文件中。通过解析日志文件,可以发现系统中耗时的业务以及常出错的业务等。
日志文件localhost_access_log通过server.xml文件配置,每一行格式主要通过
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/> 中的pattern属性配置:
要分析性能,我们需要知道 请求时间、请求路径(可作名称)、请求状态码、发送字节数、请求时长。
那么可配置pattern为:"%h %t "%r" %s %b %T"。
其中,“"”表示一个英文引号。
第一步:筛选有效的数据行
对于Controller,请求路径以"/jyglFront"开头但不以"/jyglFront/mainView/navigate"开头。
对于Service,请求路径以"/jygl/jaxrs"开头。
第二步:对有效数据行进行处理解析,解析之前需要对log格式的时间进行处理,若不好处理,可将其替换为日志文件名中的时间。
日志文件localhost_access_log通过server.xml文件配置,每一行格式主要通过
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/> 中的pattern属性配置:
· %a - 远端IP地址
· %A - 本地IP地址
· %b - 发送的字节数,不包括HTTP头,如果为0,使用"-"
· %B - 发送的字节数,不包括HTTP头
· %h - 远端主机名(如果resolveHost=false,远端的IP地址)
· %H - 请求协议
· %l - 从identd返回的远端逻辑用户名(总是返回 '-')
· %m - 请求的方法(GET,POST,等)
· %p - 收到请求的本地端口号
· %q - 查询字符串(如果存在,以 '?'开始)
· %r - 请求的第一行,包含了请求的方法和URI
· %s - 响应的状态码
· %S - 用户的session ID
· %t - 日志和时间,使用通常的Log格式
· %u - 认证以后的远端用户(如果存在的话,否则为'-')
· %U - 请求的URI路径
· %v - 本地服务器的名称
· %D - 处理请求的时间,以毫秒为单位
· %T - 处理请求的时间,以秒为单位
要分析性能,我们需要知道 请求时间、请求路径(可作名称)、请求状态码、发送字节数、请求时长。
那么可配置pattern为:"%h %t "%r" %s %b %T"。
其中,“"”表示一个英文引号。
第一步:筛选有效的数据行
对于Controller,请求路径以"/jyglFront"开头但不以"/jyglFront/mainView/navigate"开头。
对于Service,请求路径以"/jygl/jaxrs"开头。
第二步:对有效数据行进行处理解析,解析之前需要对log格式的时间进行处理,若不好处理,可将其替换为日志文件名中的时间。