해결된 질문
작성
·
216
0
아 제가 질문을 이상하게 하였습니다. ㅠ 죄송합니다.
리스트 선택 컨트롤에는 저런식으로 들어가고
log
- {IP:1.1.1.1, is_vpn:is_vpn}
- {IP:1.1.1.2, is_vpn:is_vpn, is_mobile: is_mobile}
- {IP:1.1.1.3, is_snort:is_snort}
- {IP:1.1.1.4, is_proxy:is_pory, is_mobile:is_mobile}
로그형태가 위와 같을때 json 파서를 사용을하면 아래 사진과 같이 칼럼이 형성되게 됩니다. 리스트 선택의 매게변수를 가져와서 해당 매게변수가 있는 로그만 추출하고 싶습니다!
답변 1
1
아 필드 이름과 값이 같을 때 해당 텍스트가 포함된 것만 가지고 오는 것이군요.
그렇다면 다음과 같이 하시면 됩니다.
리스트 컨트롤은 동일하게 하시면 되구요. 그리드 쪽의 쿼리에 반영하도록 해야 합니다.
원본은 보내주신 데이터를 그대로 활용했습니다.
contains()라는 로그프레소 함수는 지정한 필드의 스트링에서 검색어로 포함된 스트링이 있는지 여부를 알려줍니다.
이 함수를 사용하기 위해 각 row를 하나의 문자열로 만들필요가 있었고 그래서 tojson이라는 쿼리 커맨드를 사용하였습니다.
tojson의 결과에서 리스트 컨트롤의 텍스트가 포함되어 있는 값만 필터링 하되 값이 들어오지 않을 경우 전체를 가져오기 위해 $ 함수의 기본값을 모든 데이터가 가지고 있는 "is"라는 값으로 지정하였습니다.
감사합니다!!!ㅠ.ㅠ parser를 나중에 써도 되었었네여;;ㅠㅠ 감사합니다