使用go简单实现从IIS日志统计web的访问量


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)