# All files / core external.ts

95% Statements 19/20
50% Branches 5/10
100% Functions 1/1
91.67% Lines 11/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    401x
    1x
    1x
    1x
    1x

    1x
    1x
    1x

    1x

    1x

    1x

     import { ERRORTYPES, BREADCRUMBTYPES } from '../common/common'
    import { isError, extractErrorStack, getLocationHref, getTimestamp, unknownToString } from '../utils/index'
    import { transportData } from './transportData'
    import { breadcrumb } from './breadcrumb'
    import { Severity } from '../utils/Severity'

    interface LogTypes {
      message: string
      tag?: string
      level?: Severity
      ex?: any
    }

    /**
     * 自定义上报事件
     */
    export function log({ message = 'emptyMsg', tag = '', level = Severity.Critical, ex = '' }: LogTypes): void {
      let errorInfo = {}
      Iif (isError(ex)) {
        errorInfo = extractErrorStack(ex, level)
      }
      const error = {
        type: ERRORTYPES.LOG_ERROR,
        level,
        message: unknownToString(message),
        name: 'MITO.log',
        customTag: unknownToString(tag),
        time: getTimestamp(),
        url: getLocationHref(),
        ...errorInfo
      }
      breadcrumb.push({
        type: BREADCRUMBTYPES.CUSTOMER,
        category: breadcrumb.getCategory(BREADCRUMBTYPES.CUSTOMER),
        data: message,
        level: Severity.fromString(level.toString())
      })
      transportData.send(error)
    }