2017-11-08 4 views
-1

난 레일 로그를 기록하기 위해 logstash-logger를 사용하고 있습니다. 대부분의 경우 작동하지만, 뭔가 잘못되면 (예 : 오류가 발생 함) 레일스에서 ​​스택 추적을 생성합니다. 그러나 로거는이를 여러 개의 Json 라인에 기록합니다. 이 문제를 어떻게 해결할 수 있습니까? {: "시작하기에 \"/ \ "메시지" "...}Logstash-logger : 레일 스택 트레이스를 여러 json 라인으로 분할

{"메시지 ":"

는 여기

로그의 작은 부분을 연결하고있어 "를, ...}

{ "메시지": ": ...}

{"메시지 ":"공급 업체/번들 "(/ \ ActionController :: RoutingError 어떤 경로와 일치 \ [얻을]을") "/ruby ​​/ 2 ...}

이것은 단일 스택 추적이지만 로거는이를 다중 로그로 로깅합니다.

이것은

logstash_logger = LogStashLogger.new(
    type: :file, 
    path: "log/#{Rails.env}.log", 
    sync: true 
) 
if "#{Rails.env}" != "development" 
    config.logger = logstash_logger 
end 
내 logstash 로거 구성

입니다 아래의 형식으로 JSON 객체를 기록합니다 기본적으로
+0

무엇을 해결 json 형식을 줄이 문서에 깊이 파고나요? ... – sawa

+0

단일 스택 추적을 여러 줄로 나누기 –

+0

스택 추적이 분할되어 여러 오류가 발생하면 디버깅 할 수 없습니다. –

답변

0

Custom Log Fields

LogStashLogger.

{ 
    "message":"Some Message", 
    "@timestamp":"2015-01-29T10:43:32.196-05:00", 
    "@version":"1", 
    "severity":"INFO", 
    "host":"hostname" 
} 

는 내가 모든 레일 메시지가 LogStash에 logstash에 기록됩니다 로그

Rails Integration

는 기본적으로 레일 4, 5

지원 :: 이벤트를

읽기 JSON 형식. 최소한의 더 많은 구조 logstash 이벤트에 대한

, 다음 보석 중 하나 시도 : 현재

lograge

yarder

이 보석 출력 JSON 문자열, LogStashLogger 다음 구문 분석을 . 이러한 보석의 향후 버전은 잠재적으로 LogStashLogger와 더 긴밀하게 통합 될 수 있습니다 (예 : LogStash :: Event 객체 직접 작성). 그들이 목적에 않기 때문에

당신은 당신에게