lpw
2021-04-20 ed8a75165efbcd79f5f9b1ab6f4ec10eed6f16a1
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Copyright 2018 Google
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
#import <Foundation/Foundation.h>
 
/** The current logging level. This value and higher will be printed. Declared as volatile to make
 * getting and setting atomic.
 */
FOUNDATION_EXPORT volatile NSInteger GDTCORConsoleLoggerLoggingLevel;
 
/** A  list of logging levels that GDT supports. */
typedef NS_ENUM(NSInteger, GDTCORLoggingLevel) {
 
  /** Causes all logs to be printed. */
  GDTCORLoggingLevelDebug = 1,
 
  /** Causes all non-debug logs to be printed. */
  GDTCORLoggingLevelVerbose = 2,
 
  /** Causes warnings and errors to be printed. */
  GDTCORLoggingLevelWarnings = 3,
 
  /** Causes errors to be printed. This is the default value. */
  GDTCORLoggingLevelErrors = 4
};
 
/** A list of message codes to print in the logger that help to correspond printed messages with
 * code locations.
 *
 * Prefixes:
 * - MCD => MessageCodeDebug
 * - MCW => MessageCodeWarning
 * - MCE => MessageCodeError
 */
typedef NS_ENUM(NSInteger, GDTCORMessageCode) {
 
  /** For debug logs. */
  GDTCORMCDDebugLog = 0,
 
  /** For warning messages concerning transportBytes: not being implemented by a data object. */
  GDTCORMCWDataObjectMissingBytesImpl = 1,
 
  /** For warning messages concerning a failed event upload. */
  GDTCORMCWUploadFailed = 2,
 
  /** For warning messages concerning a forced event upload. */
  GDTCORMCWForcedUpload = 3,
 
  /** For warning messages concerning a failed reachability call. */
  GDTCORMCWReachabilityFailed = 4,
 
  /** For warning messages concerning a database warning. */
  GDTCORMCWDatabaseWarning = 5,
 
  /** For warning messages concerning the reading of a event file. */
  GDTCORMCWFileReadError = 6,
 
  /** For error messages concerning transform: not being implemented by an event transformer. */
  GDTCORMCETransformerDoesntImplementTransform = 1000,
 
  /** For error messages concerning the creation of a directory failing. */
  GDTCORMCEDirectoryCreationError = 1001,
 
  /** For error messages concerning the writing of a event file. */
  GDTCORMCEFileWriteError = 1002,
 
  /** For error messages concerning the lack of a prioritizer for a given backend. */
  GDTCORMCEPrioritizerError = 1003,
 
  /** For error messages concerning a package delivery API violation. */
  GDTCORMCEDeliverTwice = 1004,
 
  /** For error messages concerning an error in an implementation of -transportBytes. */
  GDTCORMCETransportBytesError = 1005,
 
  /** For general purpose error messages in a dependency. */
  GDTCORMCEGeneralError = 1006,
 
  /** For fatal errors. Please go to https://github.com/firebase/firebase-ios-sdk/issues and open
   * an issue if you encounter an error with this code.
   */
  GDTCORMCEFatalAssertion = 1007,
 
  /** For error messages concerning the reading of a event file. */
  GDTCORMCEFileReadError = 1008,
 
  /** For errors related to running sqlite. */
  GDTCORMCEDatabaseError = 1009,
};
 
/** Prints the given code and format string to the console.
 *
 * @param code The message code describing the nature of the log.
 * @param logLevel The log level of this log.
 * @param format The format string.
 */
FOUNDATION_EXPORT
void GDTCORLog(GDTCORMessageCode code, GDTCORLoggingLevel logLevel, NSString *_Nonnull format, ...)
    NS_FORMAT_FUNCTION(3, 4);
 
/** Prints an assert log to the console.
 *
 * @param wasFatal Send YES if the assertion should be fatal, NO otherwise.
 * @param file The file in which the failure occurred.
 * @param line The line number of the failure.
 * @param format The format string.
 */
FOUNDATION_EXPORT void GDTCORLogAssert(BOOL wasFatal,
                                       NSString *_Nonnull file,
                                       NSInteger line,
                                       NSString *_Nullable format,
                                       ...) NS_FORMAT_FUNCTION(4, 5);
 
/** Returns the string that represents some message code.
 *
 * @param code The code to convert to a string.
 * @return The string representing the message code.
 */
FOUNDATION_EXPORT NSString *_Nonnull GDTCORMessageCodeEnumToString(GDTCORMessageCode code);
 
#define GDTCORLogDebug(MESSAGE_FORMAT, ...) \
  GDTCORLog(GDTCORMCDDebugLog, GDTCORLoggingLevelDebug, MESSAGE_FORMAT, __VA_ARGS__);
 
// A define to wrap GULLogWarning with slightly more convenient usage.
#define GDTCORLogWarning(MESSAGE_CODE, MESSAGE_FORMAT, ...) \
  GDTCORLog(MESSAGE_CODE, GDTCORLoggingLevelWarnings, MESSAGE_FORMAT, __VA_ARGS__);
 
// A define to wrap GULLogError with slightly more convenient usage and a failing assert.
#define GDTCORLogError(MESSAGE_CODE, MESSAGE_FORMAT, ...) \
  GDTCORLog(MESSAGE_CODE, GDTCORLoggingLevelErrors, MESSAGE_FORMAT, __VA_ARGS__);