JSON 로그 파일을 쓰는 형식을 선택하십시오.
쓰기 및 파싱에 대한 형식 표준이 있습니까?JSON로그 파일?
문제는 '순수'를 가질 수 없다는 거야JSON일치하는 대괄호 및 후행 콤마가 필요하므로 로그 파일은 금지됩니다.따라서 다음 내용은 응용 프로그램에서 작성할 수 있지만 표준 구문 분석에서는 사용할 수 없습니다.JSON parsers:
[{date:'2012-01-01 02:00:01', severity:"ERROR", msg:"Foo failed"},
{date:'2012-01-01 02:04:02', severity:"INFO", msg:"Bar was successful"},
{date:'2012-01-01 02:10:12', severity:"DEBUG", msg:"Baz was notified"},
따라서 파서가 로그 파일을 처리할 수 있도록 로그 파일을 구성하는 방법에 대한 몇 가지 규칙이 있어야 합니다.가장 쉬운 것은 "한 줄에 하나의 로그 메시지 개체, 문자열 값의 새 행이 이스케이프됩니다."입니다.기존 표준 및 툴이 있습니까?
파일마다 하나의 JSON 개체를 쓰는 것이 아니라 LINE마다 하나의 JSON 개체를 쓰는 것입니다.그런 다음 각 행을 개별적으로 구문 분석할 수 있습니다.쉼표 후행과 오브젝트 세트 전체를 괄호 등으로 둘러싸는 것에 대해 걱정할 필요가 없습니다.이 기능의 상세한 것에 대하여는, http://blog.nodejs.org/2012/03/28/service-logging-in-json-with-bunyan/ 를 참조해 주세요.
또, Fluentd http://fluentd.org/ 를 참조해 주세요.사용하기 좋은 툴셋은 다음과 같습니다.
편집: 이 형식은 현재 JSONLines 또는jsonl아래 @Mnebuerquo가 지적한 바와 같이 http://jsonlines.org/를 참조하십시오.
보석.log_formatterrouby는 포메터 그룹으로서 루비 및 log4r의 json 포메터를 지원합니다.
루비라고 부르기 쉽죠
gem 'log_formatter'
require 'log_formatter'
require 'log_formatter/ruby_json_formatter'
logger.debug({data: "test data", author: 'chad'})
결과
{
"source": "examples",
"data": "test data",
"author": "chad",
"log_level": "DEBUG",
"log_type": null,
"log_app": "app",
"log_timestamp": "2016-08-25T15:34:25+08:00"
}
log4r의 경우:
require 'log4r'
require 'log_formatter'
require 'log_formatter/log4r_json_formatter'
logger = Log4r::Logger.new('Log4RTest')
outputter = Log4r::StdoutOutputter.new(
"console",
:formatter => Log4r::JSONFormatter::Base.new
)
logger.add(outputter)
logger.debug( {data: "test data", author: 'chad'} )
고급 사용: README
완전한 예 코드: 예
언급URL : https://stackoverflow.com/questions/10699953/format-for-writing-a-json-log-file
'programing' 카테고리의 다른 글
| Swift 3.0: 데이터를 JSON으로 [String : Any] (0) | 2023.02.08 |
|---|---|
| $parse, $interpolate 및 $compile 서비스의 차이점은 무엇입니까? (0) | 2023.02.08 |
| AngularJS - 컨트롤러에서 모듈 상수 가져오기 (0) | 2023.02.08 |
| JSON 입력 스트림을 해석하는 방법 (0) | 2023.02.08 |
| 인증된 XMLHttpRequest 후에 브라우저가 인가 헤더를 재사용하지 않는 이유는 무엇입니까? (0) | 2023.02.08 |