JavaScript를 위한 간편한 로그 기능

2595 단어 javascriptdebug
다음은 JS에 대해 노출된 일부 로그 디버깅 기능입니다.

1. console.log(arg1, arg2, ..., argn)



console.log는 둘 이상의 인수를 사용할 수 있습니다. 그렇다면 별도의 인수 수만큼 로그를 만들 것입니다.

2. console.log({ ...소품 })



개체 또는 속성 모음 개체를 전달할 수 있으며 이 개체도 기록됩니다. 개체에 명시적인 toString() 메서드가 없으면 메시지 문자열에서 연결될 때 "[object Object]"와 같은 것을 출력하고 쓸모가 없을 수 있음을 기억하십시오.

// example
const a = 1
const b = 2
const c = 3

// shorthand object notation
const item = { a, b, c }

// instead of:
console.log ('The item is ' + item)

// prefer: 
console.log ('the item is:', item)

// or: 
console.log ({ item })


공장 기능에 대한 디버그 플래그



팩토리 함수에 디버그 플래그를 전달하고 논리 AND!를 사용하여 참이면 로그할 수 있습니다.

let debug = true

const factoryFun = ({ x, y, debug }) => {
    const point = { x, y }

    point.distance = (other) => {
        const dx = Math.abs (this.x - other.x)
        const dy = Math.abs (this.y - other.y)

        debug && console.log ('computing distance between another point')

        return Math.sqrt (dx*dx + dy*dy)
    }

    debug && console.log ('factory')

    return point
}

const point = factoryFun ({ x:4, y:2, debug })


4. 조정 가능한 세부 수준 필터링



let level = 0//로그 없음 !


const bigImplFun = ({ level }) => {
    const filter = (x) => x > 0 && x >= level

    filter (1) && console.log ('log level 1')
    filter (2) && console.log ('log level 2')
    filter (3) && console.log ('log level 3')
}

bigImplFun ({ level: 3 })


5. 들여쓰기 가능한 로깅 메시지



마무리! 앰퍼샌드 "&&"시퀀스를 작성하는 데 지쳤다면 함수 본체 내부에서 분리하십시오.

const debugx = ( level, message ) => {
    const test = x > 0 && x >= level
    const indent = '\t'.repeat (level - 1)

    test && console.log (indent + message)
}

const BigImplModule = ({ level }) => {
    const nested = () => {
        debug (2, 'log level2')
    }

    const f1 = () => {
        debug (1, 'log level1')
    }
    const f2 = () => {
        debug (1, 'log level1')
        nested ()
    }

    const mod = { f1, f2 }
   return mod
}

let level = 0 // no debug !!!
let instance = bigImplModule ({ level })

instance.f1 ()
instance.f2 ()


짜잔! 즐거운 코딩하세요.

좋은 웹페이지 즐겨찾기