PHP 7.4.33
Preview: RCTLog.h Size: 5.09 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/react-native/React/Base/RCTLog.h
/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

#import <Foundation/Foundation.h>

#import <React/RCTAssert.h>
#import <React/RCTDefines.h>
#import <React/RCTUtils.h>

@class RCTModuleRegistry;
@class RCTCallableJSModules;

#ifndef RCTLOG_ENABLED
#define RCTLOG_ENABLED 1
#endif

/**
 * Thresholds for logs to display a redbox. You can override these values when debugging
 * in order to tweak the default logging behavior.
 */
#ifndef RCTLOG_REDBOX_LEVEL
#define RCTLOG_REDBOX_LEVEL RCTLogLevelError
#endif

/**
 * Logging macros. Use these to log information, warnings and errors in your
 * own code.
 */
#define RCTLog(...) _RCTLog(RCTLogLevelInfo, __VA_ARGS__)
#define RCTLogTrace(...) _RCTLog(RCTLogLevelTrace, __VA_ARGS__)
#define RCTLogInfo(...) _RCTLog(RCTLogLevelInfo, __VA_ARGS__)
#define RCTLogAdvice(string, ...) RCTLogWarn([@"(ADVICE) " stringByAppendingString:(NSString *)string], __VA_ARGS__)
#define RCTLogWarn(...) _RCTLog(RCTLogLevelWarning, __VA_ARGS__)
#define RCTLogError(...) _RCTLog(RCTLogLevelError, __VA_ARGS__)

/**
 * An enum representing the severity of the log message.
 */
typedef NS_ENUM(NSInteger, RCTLogLevel) {
  RCTLogLevelTrace = 0,
  RCTLogLevelInfo = 1,
  RCTLogLevelWarning = 2,
  RCTLogLevelError = 3,
  RCTLogLevelFatal = 4
};

/**
 * An enum representing the source of a log message.
 */
typedef NS_ENUM(NSInteger, RCTLogSource) { RCTLogSourceNative = 1, RCTLogSourceJavaScript = 2 };

/**
 * A block signature to be used for custom logging functions. In most cases you
 * will want to pass these arguments to the RCTFormatLog function in order to
 * generate a string.
 */
typedef void (^RCTLogFunction)(
    RCTLogLevel level,
    RCTLogSource source,
    NSString *fileName,
    NSNumber *lineNumber,
    NSString *message);

/**
 * A method to generate a string from a collection of log data. To omit any
 * particular data from the log, just pass nil or zero for the argument.
 */
RCT_EXTERN NSString *
RCTFormatLog(NSDate *timestamp, RCTLogLevel level, NSString *fileName, NSNumber *lineNumber, NSString *message);

/**
 * A method to generate a string RCTLogLevel
 */
RCT_EXTERN NSString *RCTFormatLogLevel(RCTLogLevel);

/**
 * A method to generate a string from a RCTLogSource
 */
RCT_EXTERN NSString *RCTFormatLogSource(RCTLogSource);

/**
 * The default logging function used by RCTLogXX.
 */
extern RCTLogFunction RCTDefaultLogFunction;

/**
 * These methods get and set the global logging threshold. This is the level
 * below which logs will be ignored. Default is RCTLogLevelInfo for debug and
 * RCTLogLevelError for production.
 */
RCT_EXTERN void RCTSetLogThreshold(RCTLogLevel threshold);
RCT_EXTERN RCTLogLevel RCTGetLogThreshold(void);

/**
 * These methods get and set the global logging function called by the RCTLogXX
 * macros. You can use these to replace the standard behavior with custom log
 * functionality.
 */
RCT_EXTERN void RCTSetLogFunction(RCTLogFunction logFunction);
RCT_EXTERN RCTLogFunction RCTGetLogFunction(void);

/**
 * This appends additional code to the existing log function, without replacing
 * the existing functionality. Useful if you just want to forward logs to an
 * extra service without changing the default behavior.
 */
RCT_EXTERN void RCTAddLogFunction(RCTLogFunction logFunction);

/**
 * This method temporarily overrides the log function while performing the
 * specified block. This is useful for testing purposes (to detect if a given
 * function logs something) or to suppress or override logging temporarily.
 */
RCT_EXTERN void RCTPerformBlockWithLogFunction(void (^block)(void), RCTLogFunction logFunction);

/**
 * This method adds a conditional prefix to any messages logged within the scope
 * of the passed block. This is useful for adding additional context to log
 * messages. The block will be performed synchronously on the current thread.
 */
RCT_EXTERN void RCTPerformBlockWithLogPrefix(void (^block)(void), NSString *prefix);

/**
 * These methods allows static methods in RCTLog to call NativeModules and TurboModules.
 * TODO(T112035275) After Bridgeless mixed mode is removed, we can merge these methods
 */
RCT_EXTERN void RCTLogSetBridgeModuleRegistry(RCTModuleRegistry *moduleRegistry);
RCT_EXTERN void RCTLogSetBridgelessModuleRegistry(RCTModuleRegistry *moduleRegistry);

/**
 * This methods allows static methods in RCTLog to call JS methods.
 * TODO(T112035275) After Bridgeless mixed mode is removed, we can merge these methods
 */
RCT_EXTERN void RCTLogSetBridgeCallableJSModules(RCTCallableJSModules *callableJSModules);
RCT_EXTERN void RCTLogSetBridgelessCallableJSModules(RCTCallableJSModules *callableJSModules);

/**
 * Private logging function - ignore this.
 */
#if RCTLOG_ENABLED
#define _RCTLog(lvl, ...) _RCTLogNativeInternal(lvl, __FILE__, __LINE__, __VA_ARGS__)
#else
#define _RCTLog(lvl, ...) \
  do {                    \
  } while (0)
#endif

RCT_EXTERN void _RCTLogNativeInternal(RCTLogLevel, const char *, int, NSString *, ...) NS_FORMAT_FUNCTION(4, 5);
RCT_EXTERN void _RCTLogJavaScriptInternal(RCTLogLevel, NSString *);

Directory Contents

Dirs: 1 × Files: 101
Name Size Perms Modified Actions
Surface DIR
- drwxr-xr-x 2025-03-28 11:04:43
Edit Download
8.66 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
10.96 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
732 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.33 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
8.28 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
16.67 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
2.37 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.06 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
3.03 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
895 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
15.47 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.31 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.41 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
441 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.52 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
13.74 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
845 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.07 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
8.07 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
16.11 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.25 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
596 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
663 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
416 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
673 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1003 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.68 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.41 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
10.46 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
44.68 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
490 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
254 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
5.01 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
515 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.45 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
590 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
585 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
514 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.07 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
3.64 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.24 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
557 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.11 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.37 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
290 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
290 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.75 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
3.12 KB lrwxr-xr-x 2025-03-28 11:04:41
Edit Download
14.01 KB lrwxr-xr-x 2025-03-28 11:04:43
Edit Download
1.10 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.81 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
910 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
429 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
809 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
7.40 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
5.09 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
10.46 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
816 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
503 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.76 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
3.79 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
16.88 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
983 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
21.12 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.79 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
683 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.59 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
887 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
6.09 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
336 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1008 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
3.20 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
2.43 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
3.81 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
390 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.90 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
841 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
516 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
445 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.21 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.28 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.02 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.85 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
5.95 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
11.42 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
967 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
615 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
852 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.96 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
497 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
12.54 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
974 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.26 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.89 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
8.18 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
35.12 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
529 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
628 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
495 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
863 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.51 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).