12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow
- */
- 'use strict';
- const invariant = require('invariant');
- const levelsMap = {
- log: 'log',
- info: 'info',
- warn: 'warn',
- error: 'error',
- fatal: 'error',
- };
- let warningHandler: ?(Array<any>) => void = null;
- const RCTLog = {
- // level one of log, info, warn, error, mustfix
- logIfNoNativeHook(level: string, ...args: Array<any>): void {
- // We already printed in the native console, so only log here if using a js debugger
- if (typeof global.nativeLoggingHook === 'undefined') {
- RCTLog.logToConsole(level, ...args);
- } else {
- // Report native warnings to LogBox
- if (warningHandler && level === 'warn') {
- warningHandler(...args);
- }
- }
- },
- // Log to console regardless of nativeLoggingHook
- logToConsole(level: string, ...args: Array<any>): void {
- const logFn = levelsMap[level];
- invariant(
- logFn,
- 'Level "' + level + '" not one of ' + Object.keys(levelsMap).toString(),
- );
- console[logFn](...args);
- },
- setWarningHandler(handler: typeof warningHandler): void {
- warningHandler = handler;
- },
- };
- module.exports = RCTLog;
|