redux-logger 도입 및 추천 Log 출력 설정 소개
7235 단어 redux-logger자바스크립트Reactredux
이번은 redux-logger의 도입 해설과 자신이 언제나 최저한 하고 있는 Log 출력 설정의 소개를 하겠습니다.
redux-logger
htps : // 기주 b. 코 m / 에 게 니 로오의 v / 레즈 x ぉ 게 rhtps //w w. 음 pmjs. 코 m / 빠 c 가게 / @ r ゔ ぃ さいえい 온 g / Rezu x ぉ 게 r
redux-logger 정보
redux-logger는 수많은 redux middleware 중에서 가장 잘 알려진 것이 아닐까요?
간단히 설명하면 다음 이미지와 같이
Action이 Dispatch되기 전후의 state와 Dispatch 된 Action을 console상에 출력합니다.
의도한 Action이 발동하고 있는지, 그 전후에서 기대한 state의 변경이 의도한 대로 행해지고 있는지 어떤지
확인하는 데 매우 유용합니다. 개발 환경에서 도입되고 있다는 분은 매우 많지 않을까요?
도입 방법
$ npm install --save redux-logger
또는
$ yarn add redux-logger
index.js
import {createStore, applyMiddleware} from 'redux'
import logger from 'redux-logger'
const store = createStore(
reducer,
applyMiddleware(logger)
)
상당히 대단합니다만, store를 이상과 같이 설정해, redux를 이용한 설계를 행해 가면,
앞의 이미지처럼 redux-logger가 적용된다고 생각합니다.
redux-logger의 Log 출력 설정 정보
여기에서, 이번 기사의 본제가 됩니다만, 이번 설명하겠습니다 redux-logger입니다만, 꽤 세세하게 log의 표시를 설정할 수 있습니다. 로그의 출력 설정을 할 수 있는 것에 대해서는 상당히 알려져 있다고 생각합니다만, 디폴트의 표시가 꽤 뛰어나기 때문에, 그대로 이용하고 있는 쪽이 많은 것은 아닐까요? 이번에는, 자신이 특히 마음에 들고 있어, 곧바로 실천할 수 있는 설정을 소개하겠습니다.
우선 출력 설정의 방법입니다만, 이하와 같이
createLogger
를 import 합니다.그리고
createLogger
를 이용해 적용하고 싶은 설정을 기술하고, logger
index.js
import {createStore, applyMiddleware} from 'redux'
import { createLogger } from 'redux-logger'
const logger = createLogger({
ここに任意の設定を記述
});
const store = createStore(
reducer,
applyMiddleware(logger)
설정할 수 있는 옵션은 다음과 같습니다( 공식 리포지토리에서 발췌 )
{
predicate, // if specified this function will be called before each action is processed with this middleware.
collapsed, // takes a Boolean or optionally a Function that receives `getState` function for accessing current store state and `action` object as parameters. Returns `true` if the log group should be collapsed, `false` otherwise.
duration = false: Boolean, // print the duration of each action?
timestamp = true: Boolean, // print the timestamp with each action?
level = 'log': 'log' | 'console' | 'warn' | 'error' | 'info', // console's level
colors: ColorsObject, // colors for title, prev state, action and next state: https://github.com/evgenyrodionov/redux-logger/blob/master/src/defaults.js#L12-L18
titleFormatter, // Format the title used when logging actions.
stateTransformer, // Transform state before print. Eg. convert Immutable object to plain JSON.
actionTransformer, // Transform action before print. Eg. convert Immutable object to plain JSON.
errorTransformer, // Transform error before print. Eg. convert Immutable object to plain JSON.
logger = console: LoggerObject, // implementation of the `console` API.
logErrors = true: Boolean, // should the logger catch, log, and re-throw errors?
diff = false: Boolean, // (alpha) show diff between states?
diffPredicate // (alpha) filter function for showing states diff, similar to `predicate`
}
이상의 항목이 있습니다만, 최소한 자신이 언제나 설정하고 있는 항목은
두 가지입니다.
collapsed
collapsed = (getState: Function, action: Object) => Boolean
아주 간단히 설명하면collapsed:true
로 로그 그룹을 접어 표시합니다. (기본적으로 false
)애플리케이션이 커지면 발행되는 Action의 수도 점차 많아지고,
로그가 콘솔을 채우고 가시성이 나쁘다고 느낀 적이 있습니까?
그런 때에는, 이 설정이 유용하다고 나는 생각하고 있습니다.
기본적으로 다음과 같이 확장된 상태로 표시되지만,
collapsed:true
로 하면 다음과 같이 접힌 상태로 표시됩니다.diff
diff:true,
여기는 true
로 하는 것으로, Action의 발행 전후에 있어서, state의 차분을 明示的
에 표시해 줍니다.차분이 명시적으로 표시되는 것으로 디버그도 낭비하는 것이 아닐까요?
(이하 참고예
diff 부분 발췌
요약
간단히 정리하면 내가 최소한 설정은 다음과 같습니다.
const logger = createLogger({
diff:true,
collapsed:true,
})
실제로는 한층 더 세세하게, 출력의 설정을 실시할 수 있습니다만, 이번은 곧바로 설정할 수 있는 것에 한정해서 소개했습니다.
수요가 있다면 다른 Option에 대해 언급한 기사를 게시하고 싶습니다.
또 괜찮으면, 여러분이 가고 있는 추천의 설정등도 코멘트 주시면 다행입니다.
Reference
이 문제에 관하여(redux-logger 도입 및 추천 Log 출력 설정 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tatapopo/items/3bdf2f3132948e3d75e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)