Введение
В рамках этого испытания вам предстоит разработать функцию фильтрации логов на основе срезов, которая обрабатывает и извлекает соответствующие сообщения. Эффективная фильтрация логов критически важна в динамичном мире кибербезопасности для своевременного обнаружения потенциальных угроз. Ваша цель — реализовать функцию filterLogs, которая отбирает записи на основе заданного ключевого слова. При этом функция должна учитывать регистр символов, корректно обрабатывать пустые срезы и пустые ключевые слова. Кроме того, функция должна возвращать только содержание самого сообщения, исключая временные метки и другие метаданные.
Реализация функции фильтрации логов через срезы
Разработайте функцию фильтрации на основе срезов для обработки и извлечения только текста сообщения (без временных меток) по заданному ключевому слову.
Задачи
- Реализуйте функцию
filterLogs, которая принимает срез строк логов и ключевое слово. - Функция должна возвращать новый срез, содержащий только текст сообщений из тех записей, которые включают указанное ключевое слово.
- Убедитесь, что функция чувствительна к регистру.
- Используйте операции со срезами Go для фильтрации и обработки записей.
- Предусмотрите корректную обработку пустых срезов и пустых ключевых слов.
Требования
- Создайте реализацию в файле
~/project/logfilter.go. - Убедитесь, что функция не изменяет исходный срез и возвращает новый срез с результатами обработки.
- Не используйте внешние библиотеки для фильтрации.
- Извлекайте и возвращайте только текст сообщения, идущий после ключевого слова (например,
"Disk is almost full"вместо"2023-06-15 ERROR: Disk is almost full"). - Используйте функции манипуляции строками для обработки логов.
Примеры
Для следующих записей лога:
logs := []string{
"2023-06-15 ERROR: Security breach detected",
"2023-06-15 INFO: System startup completed",
"2023-06-15 WARN: Unauthorized access attempt",
"2023-06-15 ERROR: Disk is almost full",
"2023-06-15 INFO: User login",
"2023-06-15 WARN: System temperature too high",
}
go run logfilter.go
Вывод:
Error Logs: [Security breach detected Disk is almost full]
Warning Logs: [Unauthorized access attempt System temperature too high]
Info Logs: [System startup completed User login]
Подсказки
- Итерация по логам: Используйте цикл
forдля проверки каждой записи. - Поиск ключевого слова: Ищите шаблон
"<KEYWORD>: "в строке лога. - Извлечение сообщения: Используйте срезы строк, чтобы получить часть, идущую после ключевого слова и разделителя
": ". - Обработка пустых входных данных: Возвращайте пустой срез, если входной список логов или ключевое слово пусты.
- Добавление результатов: Используйте функцию
appendдля добавления подходящих сообщений в новый срез.
Резюме
Подводя итог, в этом испытании вам потребовалось реализовать функцию filterLogs, которая эффективно обрабатывает и извлекает текст сообщений (исключая метаданные) из среза строк логов на основе заданного ключевого слова. Функция учитывает регистр, корректно работает с пустыми данными и демонстрирует навыки владения срезами Go и операциями со строками для фильтрации и возврата обработанных данных.



