Zadanie tygodnia: Analizator logów

  • Zadanie tygodnia: Analizator logów

    Posted by Marek Czuma on 2025-10-15 at 13:53

    Hej! Otwieram wątek dot. aktualnego zadania tygodnia. Chcę podsunąć kilka elementów i zachęcić do wykonania zadania, bo testuje ono nasze umiejętności programistyczne;-)

    Przypominam skrót polecenia:

    Mamy plik z logami i chcemy wykonać analizę. Dokładne elementy analizy są podane na stronie z zadaniem tygodnia.

    Jednak niezależnie od tego czy wybierzemy pythona czy scalę, może się pojawić się wątpliwość “od czego w ogóle zacząć?”. W załączniku wrzucam jak wygląda fragment tego pliku.

    Kilka punktów, które warto wziąć pod uwagę:

    1. Plik z logami to plik tekstowy. On sam w sobie nie ma żadnej struktury poza tym, że kolejne dane są zapisywane w nowych linijkach.
    2. W związku z tym wczytujemy kolejne linijki i dodajemy do np. listy/tablicy (grunt, żebyśmy mieli kolejność, choć w naszym przypadku i ona nie ma znaczenia)
    3. Gdy już mamy linijki jako osobne rekordy kolekcji (typ: String), mamy już pierwszą strukturę! Teraz warto to rozbić – zauważmy, że te dane są oddzielone przecinkami. Możemy więc podzielić stringa na kilka osobnych elementów poprzez split przecinkiem. W efekcie pojawia nam się lista gdzie każdy element jest kolejną listą/tablicą stringów
    4. Zamieniamy typy – ze stringów warto zbudować osobne typy. Możemy to zrobić albo przez jakąś sprytną pętlę, albo jakiś mechanizm tworzący listę obiektów klasy “Log” – wcześniej tworzymy taką klasę i jako konstruktor możemy utworzyć funkcje przyjmującą listę stringów, a wewnątrz niej zamieniać je na odpowiednie typy.
    5. Na koniec dostajemy pięknie przygotowaną listę elementów które możemy przeanalizować. Teraz warto zacząć to robić klasycznymi funkcjami, jakie daje nam wybrany język:-)

    Jeśli macie pytania – wrzucajcie śmiało. Albo swoje pomysły czy rozwiązania – nauczmy się wszyscy:-).

    To fajne ćwiczenie, bo nie jest ani długaśne ani banalne. Jednocześnie dokładnie to potem robimy jako inżynierowie danych, tylko z wykorzystaniem frameworków typu Apache Spark:-)

    • This discussion was modified 1 month, 2 weeks ago by  Marek Czuma.
    Marek Czuma replied 1 month, 2 weeks ago 2 Members · 2 Replies
  • 2 Replies
  • Michał

    Member
    2025-10-17 at 09:26
    405 Exp

    <div>Moje rozwiązanie. W Pythonie, dane uporządkowane jako lista typów dict, te bardziej wymagające analizy oparte na klasie collections.Counter 🙂</div><div>
    </div>MichaelTheButter/logextractor

    • Marek Czuma

      Organizer
      2025-10-17 at 10:24
      3818 Exp

      Ale ty mi teraz zaimponowałeś 😎. Mega fajne rozwiązanie – eleganckie, szczególnie podoba mi się wsparcie się klasami do budowania (strukturyzowania) i do analizy.

      Każdemu polecam kod Michała jako inspirację 😀

Zaloguj się aby odpowiedzieć