슬라이스 로그 필터 함수 구현
슬라이스 기반의 로그 필터링 기능을 개발하여 특정 키워드에 해당하는 로그 메시지 내용 (타임스탬프 제외) 만 추출하세요.
과제
- 로그 엔트리 슬라이스와 키워드를 매개변수로 받는
filterLogs 함수를 구현합니다.
- 이 함수는 지정된 키워드를 포함하는 로그 엔트리에서 메시지 내용만 추출하여 새로운 슬라이스에 담아 반환해야 합니다.
- 함수는 대소문자를 엄격히 구분해야 합니다.
- Go 의 슬라이스 연산을 사용하여 로그 엔트리를 필터링하고 처리하세요.
- 빈 슬라이스나 빈 키워드가 들어올 경우를 적절히 처리하세요.
요구 사항
~/project/logfilter.go 파일에 코드를 작성하세요.
- 함수는 원본 슬라이스를 수정해서는 안 되며, 처리된 결과가 담긴 새로운 슬라이스를 반환해야 합니다.
- 필터링을 위해 외부 라이브러리를 사용하지 마세요.
- 키워드 이후의 메시지 내용만 추출하여 반환해야 합니다 (예:
"2023-06-15 ERROR: Disk is almost full" 대신 "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를 사용하여 일치하는 메시지를 새 슬라이스에 추가하세요.