
저는 OSX에서 MySQL, Redis, MongoDB 및 memcached를 사용하는 레일 및 스칼라 애플리케이션을 개발 중입니다.
항상 6개의 터미널을 열어두고 그곳의 로그를 살펴보는 것은 다소 성가신 일이므로, 프로그램을 시작한 다음 stdout/log를 소켓(또는 로그 파일 테일인 경우)으로 가져올 수 있는 도구가 있는지 궁금합니다. 출력만) 원본에 대한 접두어로 집계합니다.
[MySQL - 00pid00] SELECT .......
[Rails Server - 11pid11] GET request to /foo
...
이상적으로는 다음과 같이 정렬하고 필터링할 수도 있습니다.아파치 전기톱log4j를 허용하고 정규식을 기반으로 나만의 필드를 생성합니다. 즉, 오류가 있는 경우 오류의 URL과 오류를 발생시킨 HTTP 응답/파일 + 줄만 표시하는 필드를 표시합니다.
(나는 sed awk grep과 co를 알고 있지만 GUI는 사용하기 훨씬 쉽고 시작하기도 훨씬 빠릅니다)
답변1
파일에 기록하도록 각 시스템을 설정할 수 있는 경우 Chainsaw에서 해당 로그를 추적하고 로그 항목을 단일 테이블로 집계할 수 있습니다. 방법은 다음과 같습니다.
- Chainsaw의 최신 개발자 스냅샷을 아래로 내리세요.http://people.apache.org/~sdeboy
- '환영' 탭을 선택하고 탭 상단의 '예제 수신기 구성 보기' 버튼을 클릭한 후 구성을 복사합니다. - 추적하려는 각 로그 파일에 대해 하나씩 여러 VFSLogFilePatternReceiver 항목을 생성합니다.
- 가장 간단한 logFormat은 MESSAGE입니다. 이는 Chainsaw의 행에 있는 MESSAGE 필드의 각 로그 줄을 배치합니다.
- LogFilePatternReceiver javadoc에 정의된 필드를 사용하여 Chainsaw가 로그 줄을 구문 분석하도록 할 수 있습니다.http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/varia/LogFilePatternReceiver.html
- 로그 형식이 여러 줄에 걸쳐 있는 경우 (LF)를 사용하여 줄 바꿈을 나타낼 수 있습니다(아직 해당 JavaDoc에는 없음).
- 모든 로그 파일이 Chainsaw에 별도의 탭으로 표시되면 보고 싶은 이벤트와 일치하는 표현식을 정의하여 모든 탭의 모든 이벤트를 새 탭에 수집할 수 있습니다(표현식에 대한 문서는 도움말/자습서 참조). 통사론).
- 힌트: 전기톱 로그 메시지가 사용자 메시지와 섞이지 않도록 하려면 ('현재 탭' 메뉴에서) 전기톱 로그 탭을 지우고 일시 중지하세요.
- '보기, 표현식에서 탭 만들기'를 선택하세요.
- 모든 탭의 모든 항목과 일치하는 가장 간단한 표현식은 MSG EXISTS입니다.
- 표현식이 포함된 새 탭이 생성되고 표현식과 일치하는 모든 기존 이벤트로 채워집니다.
- 표현식과 일치하는 새 이벤트가 도착하면 표현식 탭은 물론 원본 탭에도 추가됩니다.
답변2
표준에 자신만의 로그 파일을 추가할 수 있습니다./Applications/Utilities/Console.app