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

本文介绍了一个使用Go语言编写的程序,该程序用于解析特定的日志文件并统计不同URL出现的次数。通过逐行读取日志文件,跳过注释行,并提取URL进行计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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



}



转载于:https://my.oschina.net/u/1590519/blog/275377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值