Анализ, разделение и подсчет файла журнала nginx - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема.Я хочу разделить текст в файле журнала, который имеет 503 МБ.Формат внутри файла:

98.234.170.104 - - [05/Oct/2015:06:37:26 +0300] "GET /_/pk/ID_0000012978.ism/QualityLevels(1415496)/Fragments(video=61330800000) HTTP/1.1" 200 353301 "-" "Firefox/1.5" "-" rt=0.000 ut="-" cs=HIT

104.34.124.254 - - [05/Oct/2015:06:37:26 +0300] "GET /T/VZ/ID_0000013023.ism/QualityLevels(95999)/Fragments(audio=79666404082) HTTP/1.1" 200 40595 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" rt=0.000 ut="-" cs=HIT

Есть тысячи строк, подобных этой рядом.Первая строка разделенного состояния выглядит следующим образом:

User ip adress: 99.91.220.138

Event time: [05/Oct/2015:06:37:26 +0300]
Request method : GET

contentaccount:/R/0A/ID_0000013091.ism/QualityLevels(1469889)/Fragments(video=14795200000)

content type: ID_0000013091

content bitrate : QualityLevels(1469889)  indicated by bold. Bitrate  should be calculated like that 1400000, 800000, 400000,300000 

content type: Fragments(video=14795200000) indicated by bold (video or audio could)

HTTP Status: 200

Total sent Bytes: 658377

User Agent: Firefox/1.5

Cache Status: cs={STATUS} : HIT (Cache kullanılmış), MISS(cache kullanılmamış)

Что я хочу сделать, это выбрать файл с помощью одной кнопки, затем проанализировать этот файл и подсчет данных.

Например:

How many unique ip watched ?    (Sample:   548)

How many unique content watched ?    (Sample:   3242) 

How much data has been sent ?    (Sample:   500 GB)

Who is the watching most  ?     (Sample:   99.91.220.138)

What is the watching content most ?      (Sample:   ID_0000013091)

What is the watching bitrate  oran (video or same audio).    (Sample:   1400000 = %80  , 800000 = %10 , 400000 = %5 , 300000 = %5) 

What is the watching browsers most ?.    (Sample:   IE = %20 , Chrome=%60 , Firefox = %20)

HTTP status oran (Sample:    2xx=%80, 403=%10, 404=%5, 5xx=%3, 3xx=%2)

Что я делал до сих пор?Я начинаю свой путь с программирования, поэтому я ничего не мог сделать.По крайней мере, пытаясь использовать кнопку и выбрать файл и прочитать, но это не работает.Мой компьютер остановился.Я думаю, что размер файла слишком велик.

Это код, который я использовал до сих пор:

OpenFileDialog opn = new OpenFileDialog();

    string line = "";

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (opn.ShowDialog() == DialogResult.OK)
        {
            StreamReader sr = new StreamReader(opn.FileName);
            while (line!=null)
            {
                line = sr.ReadLine();
                   if (line !=null)
                {

                    listBox1.Items.Add(line);
                }
            }
            sr.Close();

        }

    }

    private void Form1_Load(object sender, EventArgs e)
    {
        opn.Filter = "Text Files (.log)|*.log";
    }
}

Я был бы благодарен за помощь - это важно для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...