使用go简单实现从IIS日志统计web的访问量
博客专区 > 学思 的博客 > 博客详情
使用go简单实现从IIS日志统计web的访问量
学思 发表于4年前
使用go简单实现从IIS日志统计web的访问量
  • 发表于 4年前
  • 阅读 41
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 使用GO,读取IIS日志文件,并统计每个URL的访问量,可以进一步扩展,统计IP、状态码等


package main


import (


    "bufio"


    "fmt"


    "io"


    "os"


    "strings"


)



var UrlMap = make(map[string]int)



func main() {



    inputFile, err := os.Open("ex14060609.log")


    if err != nil {


        fmt.Println(err)


    }


    defer inputFile.Close()


    bufRD := bufio.NewReader(inputFile)


    for {


        str, err := bufRD.ReadString('\n')


        if err == io.EOF {


            break



        }


        //以"#"开头的要跳过,iiS 日志前几行是做了注释的


        if strings.HasPrefix(str, "#") {


            continue


        }


        //fmt.Printf("%s", str)


        //tmpArr 定义临时数组


        tmpArr := strings.Split(str, " ")


        //fmt.Println(tmpArr[5])


        //通过日志文件可知temArr[5]在web日志里是URL


        //str1 = tmpArr[5]


        //var temp UrlItem


        //sw变量的作用是一个开关,用它来判断tmpArr[5]是否已经在map里,如果不在,就新建一个map键值对


        sw := true


        for k, _ := range UrlMap {


            if k == tmpArr[5] {


                UrlMap[k]++


                sw = false


                break


            }



        }


        if sw {


            UrlMap[tmpArr[5]] = 1



        }



    }


    for k, v := range UrlMap {


        fmt.Printf("%s : %d\n", k, v)


    }



    //fmt.Printf("ddd")


    //UrlMap[tmpArr[5]] = 1



}



标签: 日志分析 IIS
共有 人打赏支持
粉丝 4
博文 14
码字总数 13717
×
学思
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: