Skip to content

LanGraFyodor/log_analyzer

Repository files navigation

backend_academy_2024_project_3-java-LanGraFyodor\src\main\java\backend\academy

javac *.java компиляция

ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: java Main.java --path <ΠΏΡƒΡ‚ΡŒ_ΠΊ_Π»ΠΎΠ³Π°ΠΌ> [ΠΎΠΏΡ†ΠΈΠΈ]

ΠžΠΏΡ†ΠΈΠΈ:

o --path: (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) ΠŸΡƒΡ‚ΡŒ ΠΊ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈΠ»ΠΈ URL. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

o --from: (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π΄Π°Ρ‚Π°/врСмя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ISO8601 (yyyy-MM-ddTHH:mm:ssZ).

o --to: (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ Π΄Π°Ρ‚Π°/врСмя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ISO8601.

o --format: (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°: pretty (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), markdown ΠΈΠ»ΠΈ adoc.

o --filter-field: (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ПолС для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ: agent ΠΈΠ»ΠΈ method.

o --filter-value: (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ подстановочный Π·Π½Π°ΠΊ *.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° java Main.java --path "https://raw.githubusercontent.com/elastic/examples/master/Common%20Data%20Formats/nginx_logs/nginx_logs" --filter-field agent --filter-value "Mozilla*"

ΠΈΠ»ΠΈ

java Main.java --path "access.log" --from "2023-10-01T10:20:00Z" --to "2023-10-01T10:25:00Z" ΠΈ Π΄Ρ€.

Π¨Π°Π±Π»ΠΎΠ½ Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π·Π°Π΄Π°Π½ΠΈΠΉ

Π¨Π°Π±Π»ΠΎΠ½ для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π·Π°Π΄Π°Π½ΠΈΠΉ АкадСмии БэкСнда 2024.

ЦСль Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория – ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас с процСссом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java с использованиСм Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π­Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта автоматичСской сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Apache Maven.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • pom.xml – дСскриптор сборки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ maven, ΠΈΠ»ΠΈ Project Object Model. Π’ Π½Π΅ΠΌ описаны зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ шаги ΠΏΠΎ Π΅Π³ΠΎ сборкС
  • src/ – дирСктория, которая содСрТит исходный ΠΊΠΎΠ΄ прилоТСния ΠΈ Π΅Π³ΠΎ тСсты:
    • src/main/ – здСсь находится ΠΊΠΎΠ΄ вашСго прилоТСния
    • src/test/ – здСсь находятся тСсты вашСго прилоТСния
  • mvnw ΠΈ mvnw.cmd – скрипты maven wrapper для Unix ΠΈ Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ maven Π±Π΅Π· локальной установки
  • checkstyle.xml, checkstyle-suppression.xml, pmd.xml ΠΈ spotbugs-excludes.xml – Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ для контроля качСства ΠΊΠΎΠ΄Π°. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ содСрТат ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ²
  • .mvn/ – слуТСбная дирСктория maven, содСрТащая ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сборщика
  • lombok.config – ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Lombok, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π΅ΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠ³ΠΎ написания шаблонного ΠΊΠΎΠ΄Π°
  • .editorconfig – Ρ„Π°ΠΉΠ» с описаниСм настроСк форматирования ΠΊΠΎΠ΄Π°
  • .github/workflows/build.yml – Ρ„Π°ΠΉΠ» с описаниСм шагов сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² срСдС Github
  • .gitattributes, .gitignore – слуТСбныС Ρ„Π°ΠΉΠ»Ρ‹ для git, с описаниСм Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, описано Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… курса 1.8 Настройка IDE, 1.9 Π Π°Π±ΠΎΡ‚Π° с Git ΠΈ 1.10 Настройка SSH.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· модального ΠΎΠΊΠ½Π° IDEA Run Anything ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

mvn clean verify

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈΠ· корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Для Unix (Linux, macOS, Cygwin, WSL):

./mvnw clean verify

Для Windows:

mvnw.cmd clean verify

Для окончания сборки потрСбуСтся ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя, ΠΏΠΎΠΊΠ° maven скачаСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости, скомпилируСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ тСстов.

Если Π²Ρ‹ Π² процСссС сборки ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:
JDK version must be at least 22

Π—Π½Π°Ρ‡ΠΈΡ‚, вСрсия вашСго JDK Π½ΠΈΠΆΠ΅ 22.

Если ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Rule 1: org.apache.maven.enforcer.rules.version.RequireMavenVersion failed with message:
Maven version should, at least, be 3.8.8

Π—Π½Π°Ρ‡ΠΈΡ‚, Ρƒ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСрсия maven Π½ΠΈΠΆΠ΅ 3.8.8. Π’Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π²Ρ‹ запускаСтС сборку ΠΈΠ· IDEA ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· mvnw-скрипты.

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ пСрСчислСны Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ maven.

Запуск Ρ‚ΠΎΠ»ΡŒΠΊΠΎ компиляции основных классов:

mvn compile

Запуск тСстов:

mvn test

Запуск Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ²:

mvn checkstyle:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… зависимостСй):

mvn dependency:tree

Π’Ρ‹Π²ΠΎΠ΄ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ любом ΠΏΠ»Π°Π³ΠΈΠ½Π΅ (вмСсто compiler ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ вас ΠΏΠ»Π°Π³ΠΈΠ½):

mvn help:describe -Dplugin=compiler

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

About

πŸ“ƒThe Log Analyzer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages