mowispace / react-native-logs

Performance-aware simple logger for React-Native and Expo with namespaces, custom levels and custom transports (colored console, file writing, etc.)
MIT License
467 stars 33 forks source link

log.error shows empty object #25

Closed fuggerstadt1907 closed 3 years ago

fuggerstadt1907 commented 3 years ago

Hi all 👋

I'm facing problems when logging errors in try catch blocks. Caught and logged errors shows only an empty object 😞

19/01/2021, 08:23:55 | ERROR | {}

Any ideas?console.error(err) does it right: Error: BLE_CONNECTION_ERROR: Cannot convert undefined or null to object

alessandro-bottamedi commented 3 years ago

Can you give me the full code of how you pass the error to the logger and which transport do you use?

fuggerstadt1907 commented 3 years ago

Hi @alessandro-bottamedi sure, here is an example

return (
    <CustomView
      style={styles.view}
      accessibilityLabel={A11y.DEVICE_INFO}
      fullSize={!!language}
      header={
        <AppHeader
          onPressClose={navigateToDetail}
          title={I18n.Interface.DEVICE_DETAILS.OPERATING_INSTRUCTIONS.HEADER_TITLE}
        />
      }>
      {!language &&
        OPERATING_INSTRUCTIONS_LANGUAGES.map(({ key, label }) => (
          <ListElement
            key={key}
            accessibilityLabel={label}
            title={label}
            bottomDivider
            chevron
            onPress={() => setLanguage(key)}
          />
        ))}
      {language && (
        <Pdf
          source={source}
          onError={error => log.error('Error while presenting PDF', error)}
          style={styles.pdf}
          scale={0.95}
          minScale={0.95}
        />
      )}
    </CustomView>
  )

log.error('Error while presenting PDF', error) produces the following log in my console:

20/01/2021, 08:07:52 | ERROR | Error while presenting PDF
20/01/2021, 08:07:52 | ERROR | {}

Also irritating, that this is printed in two separate lines 😞

When I chance log.error to console.error the full error is printed properly

The logger is configured as follows

import { logger } from 'react-native-logs'
import { colorConsoleSync } from 'react-native-logs/dist/transports/colorConsoleSync'

import { Config } from '../constants'

const defaultConfig = {
  severity: Config.LOGGER_SEVERITY,
  transport: colorConsoleSync,
  transportOptions: null,
  levels: {
    trace: 0,
    debug: 1,
    info: 2,
    warn: 3,
    error: 4,
  },
}
const log = logger.createLogger(defaultConfig)

export { log }
alessandro-bottamedi commented 3 years ago

I will soon release version 3 which will fix this bug and also concantenation on the same line, for now try using:

log.error('Error while presenting PDF', error.message)
alessandro-bottamedi commented 3 years ago

Fixed in v 3.0.0

fuggerstadt1907 commented 3 years ago

thx @alessandro-bottamedi I'll check out v3 today ✌️