Introdução
Neste desafio, você desenvolverá uma função de filtragem de logs baseada em slices que processa e extrai mensagens de log relevantes. A filtragem eficiente de logs é crucial no dinâmico mundo da cibersegurança para identificar potenciais ameaças. O objetivo é implementar a função filterLogs para filtrar mensagens de log com base em uma palavra-chave específica, garantindo que a função seja sensível a maiúsculas e minúsculas (case-sensitive) e trate slices ou palavras-chave vazias de forma adequada. Além disso, a função deve retornar apenas o conteúdo da mensagem, excluindo carimbos de data/hora (timestamps) ou outros metadados.
Implementar Função de Filtro de Logs com Slices
Desenvolva uma função de filtragem de logs baseada em slices para processar e extrair apenas o conteúdo da mensagem de log (excluindo timestamps) para uma determinada palavra-chave.
Tarefas
- Implementar a função
filterLogsque recebe um slice de entradas de log e uma palavra-chave. - A função deve retornar um novo slice contendo apenas o conteúdo da mensagem das entradas de log que incluírem a palavra-chave especificada.
- Garantir que a função seja sensível a maiúsculas e minúsculas (case-sensitive).
- Utilizar operações de slice do Go para filtrar e processar as entradas de log.
- Tratar slices vazios e palavras-chave vazias adequadamente.
Requisitos
- Crie a implementação no arquivo
~/project/logfilter.go. - Garanta que a função não modifique o slice original e retorne um novo slice com os resultados processados.
- Não utilize bibliotecas externas para a filtragem.
- Extraia e retorne apenas o conteúdo da mensagem após a palavra-chave (por exemplo,
"Disk is almost full"em vez de"2023-06-15 ERROR: Disk is almost full"). - Utilize funções de manipulação de strings para processar os logs.
Exemplos
Dadas as seguintes entradas de log:
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
Saída:
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]
Dicas
- Iterar Logs: Use um laço
forpara verificar cada entrada de log. - Localizar Palavra-chave: Procure pelo padrão
"<KEYWORD>: "no log. - Extrair Mensagem: Use fatiamento (slicing) para obter a parte após a palavra-chave e os caracteres
": ". - Tratar Entradas Vazias: Retorne um slice vazio se os logs ou a palavra-chave estiverem vazios.
- Adicionar Resultados: Use
appendpara adicionar as mensagens correspondentes a um novo slice.
Resumo
Em resumo, este desafio exigiu a implementação de uma função filterLogs que processa e extrai eficientemente mensagens de log relevantes (excluindo metadados) de um slice de strings de log com base em uma palavra-chave. A função deve ser sensível a maiúsculas e minúsculas, tratar slices e palavras-chave vazias corretamente, e demonstrar proficiência no uso de operações de slice e manipulação de strings em Go para filtrar e retornar mensagens de log processadas.



