收藏 分享(赏)

Weblogci自定义日志格式.doc

上传人:11xg27ws 文档编号:7804906 上传时间:2019-05-26 格式:DOC 页数:9 大小:147.50KB
下载 相关 举报
Weblogci自定义日志格式.doc_第1页
第1页 / 共9页
Weblogci自定义日志格式.doc_第2页
第2页 / 共9页
Weblogci自定义日志格式.doc_第3页
第3页 / 共9页
Weblogci自定义日志格式.doc_第4页
第4页 / 共9页
Weblogci自定义日志格式.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、Weblogci 自定义日志格式设置方法(weblogic 6.1 以上适用)1.启用和设置 HTTP Access Logs找到当前 server, TAB 菜单选择 Logging选择二级菜单中的 HTTP选中 Enable Logging 的 checkbox设置 Logfile 文件,如果需要按日期来 access_%yyyy%_%MM%_%dd%.logFormat 设置为 common 或 extended,用到自定义一定要用 extendedRotation type:选择为 date重命名时间为 Rotation time 设置为 2007-04-13-00:00:00 日期可

2、以随便输主要是时间要设置好设置好后按 apply,重启服务2.创建 Fields 指令日志文件的第一行必须包含用于声明日志文件格式的版本号的指令。还必须在文件的开头附近包含 Fields 指令: #Version: 1.0#Fields: xxxx xxxx xxxx .其中,每个 xxxx 描述了要记录的数据字段。字段类型可指定为简单标识符,或采用前缀标识符格式(在 W3C 规范中定义)。示例如下: #Fields: date time cs-method cs-uri此标识符会指示服务器记录事务的日期和时间、客户端使用的请求方法和每个 HTTP 访问请求的 URI。每个字段都以空格进行分隔

3、,并且每条记录都会写入一个新行(追加到日志文件)。 注意:在日志文件中,#Fields 指令后面必须为一个新行,以便第一条日志文件消息不会追加到同一行。 支持的字段标识符 以下标识符是受支持的,不需要前缀。 date 完成事务的日期,字段类型为 (在 W3C 规范中定义)。 time 完成事务的时间,字段类型为 (在 W3C 规范中定义)。 time-taken 完成事务所需的时间,以秒为单位,字段类型为 (在 W3C 规范中定义)。 bytes 已传输的字节数,字段类型为 。 请注意,WebLogic Server 不支持 W3C 规范中定义的 cached 字段。 以下标识符需要前缀,不能

4、单独使用。对于受支持的前缀组合,将单独进行介绍。 IP 地址相关字段: 这些字段将提供正在进行请求的客户端或正在进行响应的服务器的 IP 地址或端口。这些字段的类型为 (在 W3C 规范中定义)。受支持的前缀如下: c-ip 客户端的 IP 地址。 s-ip 服务器的 IP 地址。 DNS 相关字段 这些字段提供客户端或服务器的域名,字段类型为 (在 W3C 规范中定义)。受支持的前缀如下: c-dns 正在进行请求的客户端的域名。 s-dns 被请求的服务器的域名。 sc-status 响应的状态代码,如表示“找不到文件”状态的 (404)。此字段的类型为 (在 W3C 规范中定义)。 sc

5、-comment 随状态代码返回的注释,如“找不到文件”。此字段的类型为 。 cs-method 请求方法,例如 GET 或 POST。此字段的类型为 (在 W3C 规范中定义)。 cs-uri 完整的被请求 URI。此字段的类型为 (在 W3C 规范中定义)。 cs-uri-stem 仅为 URI 的资源部分(忽略查询)。此字段的类型为 (在 W3C 规范中定义)。 cs-uri-query 仅为 URI 的查询部分。此字段的类型为 (在 W3C 规范中定义)。 3.创建自定义字段标识符还可以创建将包含在使用扩展日志格式的 HTTP 访问日志文件中的用户定义的字段。要创建自定义字段,请使用

6、Fields 指令标识 ELF 日志文件中的字段,然后创建一个可生成所需输出的匹配 Java 类。可为每个字段创建单独的 Java 类,或创建可输出多个字段的 Java 类。有关这样一个类的 Java 源代码示例,请参阅 用于创建自定义 ELF 字段的 Java 类。 要创建自定义字段,请执行下列操作: 1. 使用以下形式,将字段名包含在 Fields 指令中:x-myCustomField.其中, myCustomField 是完全限定的类名。 有关 Fields 指令的详细信息,请参阅 创建 Fields 指令。 2. 创建一个与使用 Fields 指令定义的自定义字段具有相同完全限定类名

7、的 Java 类(例如 myCustomField) 。此类会定义要记录在自定义字段中的信息。该 Java 类必须实现以下接口: weblogic.servlet.logging.CustomELFLogger在您的 Java 类中,必须实现 logField() 方法,该方法将 HttpAccountingInfo 对象和 FormatStringBuffer 对象作为其参数: 使用 HttpAccountingInfo 对象可访问那些可在自定义字段中输出的 HTTP 请求和响应数据。已提供了 Getter 方法来访问此信息。有关这些 get 方法的完整列表,请参阅 HttpAccounti

8、ngInfo 对象的 Get 方法。 使用 FormatStringBuffer 类可创建自定义字段的内容。已提供了相应的方法来创建合适的输出。有关这些方法的详细信息,请参阅 FormatStringBuffer 的 Javadocs。 3. 编译该 Java 类并将该类添加到用于启动 WebLogic Server 的 CLASSPATH 语句。您可能需要在用于启动 WebLogic Server 的脚本中修改 CLASSPATH 语句。注意:请不要将此类放入展开格式或 jar 格式的 Web 应用程序或企业应用程序内部。4. 将 WebLogic Server 配置为使用扩展日志格式。有关

9、详细信息,请参阅使用扩展日志格式设置 HTTP 访问日志。 注意:编写用于定义自定义字段的 Java 类时,请不要执行可能会降低系统运行速度的任何代码(例如,访问 DBMS 或执行大量的 I/O 或网络调用) 。请记住,HTTP 访问日志文件条目是针对每一个 HTTP 请求创建的。注意:如果要输出多个字段,请使用制表符分隔这些字段。有关分隔字段和其他 ELF 格式问题的详细信息,请参阅 Extended Log Format。HttpAccountingInfo 对象的 Get 方法 以下方法可返回有关 HTTP 请求的各种数据。这些方法类似于 javax.servlet.ServletReq

10、uest、javax.servlet.http.Http.ServletRequest 和 javax.servlet.http.HttpServletResponse 的各种方法。 4.示例:示例 1:format 使用 extended 格式(未用自定义格式字段)1.启用 http access log, :format 设置为 extended2.在对应的 log 文件中加入第一行加入#Version: 1.0#Fields: c-ip date time cs-method cs-uri sc-status bytes重启后访问可看到日志为127.0.0.1 2007 10:11:50

11、 GET /index.jsp 200 409示例 2: 用自定义格式字段1. 启用 http access log, :format 设置为 extended2. 在对应的 log 文件中加入第一行加入#Version: 1.0#Fields: x-MyCustomField要以 x-开头,MyCustomField 是类名3.编写 MyCustomField.java 文件,必须在顶层包中import weblogic.servlet.logging.CustomELFLogger;import weblogic.servlet.logging.FormatStringBuffer;imp

12、ort weblogic.servlet.logging.HttpAccountingInfo;/* author 邓胜宇* 1.0*/public class MyCustomField implements CustomELFLogger /* (non-Javadoc)* see weblogic.servlet.logging.LogField#logField(weblogic.servlet.logging.HttpAccountingInfo, weblogic.servlet.logging.FormatStringBuffer)* 格式为ip logname datetime

13、 methodurl user-agent code length* 10.16.79.5 - 2007-04-18 17:02:04 “GET /js/common.js HTTP/1.1“ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)“ 200 81*/public void logField(HttpAccountingInfo metrics,FormatStringBuffer buff) java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat(“

14、yyyy-MM-dd HH:mm:ss“);buff.appendValueOrDash(metrics.getRemoteAddr();if(metrics.getRemoteUser()!=null elsebuff.appendValueOrDash(“ -“);String datetime = sd.format(java.util.Calendar.getInstance().getTime();buff.appendValueOrDash(“ “+datetime);buff.appendValueOrDash(“ “+metrics.getMethod()+“ “+metric

15、s.getRequestURI()+“ “+metrics.getProtocol()+“);buff.appendValueOrDash(“ “+metrics.getHeader(“User-Agent“)+“);buff.appendValueOrDash(“ “+metrics.getResponseStatusCode();buff.appendValueOrDash(“ “+metrics.getResponseContentLength();4.在启动 weblogic 文件的 classpath 加入 MyCustomField 类所在目录重启后访问可看到日志为10.16.79

16、.5 - 2007-04-18 17:30:11 “GET /services/commons/style.css HTTP/1.1“ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)“ 200 80235.配置 Awstats 日志分析器AWStats 的运行模式是这样的: 分析日志:运行后将这样的日志统计结果归档到一个 AWStats 的数据库(纯文本)里; 然后是输出:分两种形式 一种是通过 cgi 程序读取统计结果数据库输出; 一种是运行后台脚本将输出导出成静态文件; 以下是 2 个针对单个站点日志统计例子:一个是在 GN

17、U/Linux 上通过 CGI 方式的输出,一个是在 Windows 2000 上的基于静态页面的导出1.安装 AwstatsAWStats 是 perl 语言书写的程序,所以必选先安装 ActivePerl(for win32)程序。1、安装 ActivePerlPerl 5.8 (必须 5.2 或更高,awstats 是用 perl 写的) ,下载 zip 压缩包,解压缩之后,运行Installer.bat。输入要安装的目录,如 D:Perl接下来的基本上一路回车就可以了。当询问输入 Apache 的路径的时候,如果没有的话,请输入:none。最后按照提示,输入:return 结束 Per

18、l 安装程序。测试是否安装成功命令窗口输入 perl v 可看到安装的版本号,如果没有说明没安装成功。2、安装 AWStats在安装以前会检测环境变量 path 中是否包含 perl 所在的目录(如刚才安装后的路径D:Perlbin) 。如果 path 中没有的 perl 路径的话, AWStats 会弹出消息,可以选择跳过 (skip),但为了保证以后使用的方便,推荐将 perl.exe 所在目录添加到 path 中。安装结尾的时候,会提示是否新建一个配置文件,选择是(y) ,输入要统计的站点的名字,如 其他没有什么需要注意的地方。2.在 tomcat 中使用 Awstats1、设置 web

19、logic 的 http access log(见 Weblogci 自定义日志格式设置方法),awstats 是日志分析工具,只要指定日志文件就可以了,关键是它的配置。2、启动 tomcat 中的 CGI 功能修改 tomcat 的配置文件%TOMCAT_HOME%/conf/web.xml,让 tomcat 可以支持 cgi 脚本取消这段 servlet 的配置文件的注释cgiorg.apache.catalina.servlets.CGIServletclientInputTimeout100debug6cgiPathPrefixWEB-INF/cgi5取消这段 servlet mapp

20、ing 的配置文件的注释cgi/cgi-bin/*配置完 tomcat 的 web.xml 文件,找到 tomcat 的安装目录下 server/lib/servlet-cgi.renametojar 文件,将它该名为 servlet-cgi.jar。这样 tomcat 就可以支持 cgi。3、部署 awstats拷贝并改名 awstats/wwwroor/cgi-bin 目录到 你的 /WEB-INF/cgi 目录把 /WEB-INF/cgi/awstats.model.conf 改名为 common.conf将 common.conf 作为默认配置文件,然后在自定义的配置文件引入,这样配置

21、省很多事情。然后建立并编辑 awstats.$你的域名.conf 文件,添加以下几个配置项。Include “common.conf“LogFile=“/home/tomcat/logs/access_log.%yyyy%mm%dd.log“SiteDomain=“$你的域名“HostAliases=“localhost 127.0.0.1“DefaultFile=“index.jsp“DirData=“./data“根据配置文件的配置,在当前目录建立一个空文件夹 data 存放分析后的数据。拷贝 awstats/wwwroor/icon 到 你 WEB 的 /icon4、开始分析日志运行一下

22、 awstatscd /opt/tomcat/webapps/localhost/WEB-INF/cgi/ ./awstats.pl -config=$你的域名 -update5、启动 tomcat 查看结果http:/localhost/cgi-bin/awstats.pl?config=$你的域名附录:1、统计指标说明 参观者:按来访者不重复的 IP 统计,一个 IP 代表一个参观者; 参观次数:一个参观者可能 1 天之内参观多次(比如:上午一次,下午一次) ,所以按一定时间内(比如:1 个小时) ,不重复的 IP 数统计,参观者的访问次数; 网页数:不包括图片,CSS, JavaScri

23、pt 文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求; 文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript 等,用户请求一个页面是,如果页面中包含图片等,所以对服务器会发出多次文件请求,文件数一般远远大于文件数; 字节:传给客户端的数据总流量; 来自 REFERER 中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:比如:2003-03-26 15:43:58 123.123.123.123 - GET /index.html 200 192 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http:/ 在搜索引擎的关键短语和关键词统计方面的功能还是比较完整的:可以对全世界 3 百多种机器爬虫进行识别,并且可以识别大部分主流国际化搜索引擎和很多地区的本地语言搜索引擎。2、统计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报