logdna / logdna-browser

A frontend browser logging and exception capturing library for LogDNA
MIT License
19 stars 14 forks source link

[2.0.3] Export `captureError` from root. #32

Open prescience-data opened 2 years ago

prescience-data commented 2 years ago

In v1.x.x I was able to (albeit indirectly) access captureError which was really useful when I just needed to pipe an error directly from a catch without a lot dealing with the full logger.

I previously was destructuring this from the instantiated root logger (https://github.com/logdna/logdna-browser/blob/v1.1.4/src/index.ts#L165) but as far as I can tell there is no direct access anymore via the root methods export (https://github.com/logdna/logdna-browser/blob/v2.0.3/src/LogDNAMethods.ts)

It would be awesome to get access to https://github.com/logdna/logdna-browser/blob/v2.0.3/src/capture.ts#L34 from the root index exports.

// index.ts

import { LogDNAMethods } from './LogDNAMethods';

import { init, config, methods } from './init';
import plugins from './plugins';
import { addContext } from './context-manager';
import { setSessionId } from './session-manager';
import { captureError } from './capture';

// ...

export { captureError }
export default methods;

Example use case


import { captureError, debug } from "./logger"

const fooAsync = async () => {
  try {
    // ...
  } catch (error) {
    captureError(error)
  } finally {
    debug(`Completed foo.`)
  }
}

const barSync = (url: string) => {
  fetch(url).then(() => {
    // ...
  }).catch(captureError)
}
TerryMooreII commented 2 years ago

You should be able to send it to logdna.error() and if the message is an instanceof Error then it will send it to captureError