• IIS日志(log)详解


    现在是网络时代了,不少朋友都拥有了自己的个人网站啊,个人主页什么的,很多人问我如何统计个人网站的流量,其实这个问题很简单的。使用IIS服务器的网站,如果启动IIS的LOG日志记录,每一个网站每一天都会有一个日志生成,这个日志详细地记录了所有访问您的网站的记录,本人是在时代互联 http://now.net.cn 购买的空间,他们空间已经自带了IIS的日志分析系统,查询很方便的,有需要的朋友可以去他们的网站了解一下。 

    以下是其中一段: 
    ex050104.log 
    #Software: Microsoft Internet Information Services 6.0 
    #Version: 1.0 
    #Date: 2005-01-03 16:00:00 
    #Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken 

    2005-01-01 16:02:06 POST /searchout.asp - 70.25.29.53 http://www.test.com/ 200 18058 653 17312 
    2005-01-01 16:02:21 GET /images/cd-01_07.gif - 70.25.29.53 http://www.test.com/Enterprise/detail.asp?id=1612186 304 214 464 750 
    2005-01-01 16:02:22 GET /Enterprise/detail.asp id=1612186 70.25.29.53 http://www.test.com/searchout.asp 200 17735 369 4656 

    我们可以看到,在LOG日志里面的最顶头有一些相关说明,记录开始时间,以及将要记录哪些信息。 
    比如#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken 
    其中 
    date表示记录访问日期; 
    time访问时间; 
    cs-method表示访问方法,常见的有两种,一是GET,就是平常我们打开一个URL访问的动作,二是POST,提交表单时的动作; 
    cs-uri-stem就是访问哪一个文件; 
    cs-uri-query是指访问地址的附带参数,如asp文件?后面的字符串id=12等等,如果没有参数则用-表示; 
    c-ip访问者IP; 
    cs(Referer)访问来源; 
    sc-status状态,200表示成功,403表示没有权限,404表示打不到该页面,500表示程序有错; 
    sc-bytes服务端传送到客户端的字节大小; 
    cs-bytes客户端传送到服务端的字节大小; 
    time-taken处理时间。 

    利用上面IIS的LOG日志,可以做如下用途: 

    一、网站访问统计: 

    通过对上面两行的记录,我们可以得知,每当有一个访问,都会相应的有一个记录,为新的一行,统计这些记录,就可以得到一个准确的统计数字了。 
    需要注意的地方:LOG日志会把每一次浏览都详细记录,包括如index.asp文件里面的logo.gif等等图片都记录为新的一行。也就是说如果一个页面里面如果使用了10张图片,那同时也会有10个记录产生。如果注意到了这一点,我们就可以做一个更加准确的统计就是过滤文件后缀名了。 
    使用程序来分析这些统计会快速准确的多,一个程序的例子如下(C#): 
    int count=0; 
    public void logparse(){ 
    StreamReader sr = new SteamReader("ex050104.log"); 
    string line=""; 

    while((line=sr.ReadLine())!=null){ 
    DoParse(line); 


    private void DoParse(string line){ 
    this.count++; 

    上面的就是一个最简单的统计日志的行数的程序。 

    如果要做详细的分析,如:要统计下载量,也就是sc-bytes的总值,就可以做如下改动: 
    int downbytes=0; 
    private void DoParse(string line){ 
    string[] linearr = line.Split(' ');//将一行记录以空格分割开来. 
    int bytes = Convert.ToInt32(linearr[8]); //前提是知道一行记录里面字段的位置 
    downbytes += bytes; 
    this.count++; 

    注意日志记录的传送的是以字节记录的,而不是K。 
    同样的道理可以分析页面运行的总时间,等等。 

    分析点击统计量与来访IP数的区别:一个来访者,可能会在网站上访问多个页面,那就会有多个记录是同一个IP的。那统计那些不重复的IP访问记录,就是来访IP数了。 
    怎样不统计那些重复的IP呢?下面只是其中一种方案: 
    private void IPParse(string ip){ 
    Hashtable iphash = new Hashtable();//使用Hashtable来保存 
    if(iphash.ContainsKey(ip)){ //如果已经存在,就加1 
    iphash[ip]=(int)iphash[ip]+1; 
    }else{ 
    iphash.Add(ip,0); //如果没有则新添加 


    这样就可以不统计重复的IP,也可以统计同一个IP访问的次数。 
    统计访问来源可以使用同上的方法,就可以得到不重复的来源统计了。 


    二、分析网站的结构: 

    1、首先站长可能比较关心的一点是,到底我的网站里哪一个页面被人点击得最多,同样可以使用IIS的LOG日志来分析,主要分析cs-uri-stem这一字段。 
    和分析重复的IP和来源一样,可以统计某一页面的点击量。 

    2、分析网站页面出错的页面,主要针对sc-status 
    分析主要有哪些页面出错,对网站进一步了解。 

    3、分析网站页面的运行时间,主要针对time-taken,可以确定自己的哪一个程序写得不好,导致访问时间过长。 

    通过IIS的日志文件可以得到一些我们网站制作者想要的信息,可以进一步检查自己的网站的不足。 
    网站统计说到底也就是这么简单,无非就是对日志文件每一行进行简单的统计而已。分析日志文件,您自己也可以做网站统计分析了。有兴趣建立网站的朋友可以登陆时代互联的网站(now.net.cn),他们的空间是提供试用的,速度,功能、稳定上都可以说是一流的,特别是他们前段时间推出的时代互联 Global CDN全球网络镜像及加速引擎,解决了影响互联网传输性能的“第一公里”和“网间互联瓶颈”等各个环节的问题,从而实现跨地区、跨运营商网络加速服务。现购他们的空间都可以送Global CDN网络加速器,具体的可以上他们的网站了解: http://www.jiqiao8.net

  • 相关阅读:
    oracle全文检索笔记
    java命令行运行带外部jar
    xstream对象xml互转
    spring postconstruct
    eclipse tomcat内存设置
    tomcat PermGen space
    springmvc+mybatis如何分层
    maven+springmvc+easyui+fastjson+pagehelper
    eclipse优化配置
    CodeSmith生成Entity时SourceTable.Description换行不注释
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2228045.html
Copyright © 2020-2023  润新知