Skip to content

Commit 28790a5

Browse files
NRLogger: Fix to honor remote log level and local log level correctly.
1 parent 79e0d4b commit 28790a5

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

Agent/Utilities/NRLogger.m

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ + (void)log:(unsigned int)level
5252
// @synchronized(logger) {
5353
shouldLog = (logger->logLevels & level) != 0;
5454
// }
55-
56-
if (shouldLog) {
55+
56+
BOOL shouldRemoteLog = (logger->remoteLogLevel & level) != 0;
57+
58+
59+
if (shouldLog || shouldRemoteLog) {
5760
[logger addLogMessage:[NSDictionary dictionaryWithObjectsAndKeys:
5861
[self levelToString:level], NRLogMessageLevelKey,
5962
file, NRLogMessageFileKey,
@@ -80,7 +83,10 @@ + (void)log:(unsigned int)level
8083
shouldLog = (logger->logLevels & level) != 0;
8184
// }
8285

83-
if (shouldLog) {
86+
BOOL shouldRemoteLog = (logger->remoteLogLevel & level) != 0;
87+
88+
89+
if (shouldLog || shouldRemoteLog) {
8490
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
8591
[self levelToString:level], NRLogMessageLevelKey,
8692
file, NRLogMessageFileKey,
@@ -106,13 +112,15 @@ + (void)log:(unsigned int)level
106112
// Filter passed logs by log level.
107113
shouldLog = (logger->logLevels & level) != 0;
108114

115+
BOOL shouldRemoteLog = (logger->remoteLogLevel & level) != 0;
116+
109117
// Filtering of Console logs is performed based on logLevel.
110118
// // If this is an agentLog, only print it if we are currently including the debug level.
111119
// if (agentLogsOn) {
112120
// shouldLog = (logger->logLevels & NRLogLevelDebug) != 0;
113121
// }
114122

115-
if (shouldLog) {
123+
if (shouldLog || shouldRemoteLog) {
116124
[logger addLogMessage:[NSDictionary dictionaryWithObjectsAndKeys:
117125
[self levelToString:level], NRLogMessageLevelKey,
118126
file, NRLogMessageFileKey,
@@ -277,7 +285,12 @@ - (void)dealloc {
277285
- (void)addLogMessage:(NSDictionary *)message : (BOOL) agentLogsOn {
278286
// The static method checks the log level before we get here.
279287
dispatch_async(logQueue, ^{
280-
if ((self->logTargets & NRLogTargetConsole) && (![NRMAFlags shouldEnableRedirectStdOut])) {
288+
289+
// Only enter this first block if local logging enabled.
290+
NSString *levelString = [message objectForKey:NRLogMessageLevelKey];
291+
NRLogLevels level = [NRLogger stringToLevel:levelString];
292+
BOOL shouldLog = (self->logLevels & level) != 0;
293+
if ((self->logTargets & NRLogTargetConsole) && shouldLog && (![NRMAFlags shouldEnableRedirectStdOut])) {
281294
NSLog(@"NewRelic(%@,%p):\t%@:%@\t%@\n\t%@",
282295
[NewRelicInternalUtils agentVersion],
283296
[NSThread currentThread],
@@ -287,12 +300,10 @@ - (void)addLogMessage:(NSDictionary *)message : (BOOL) agentLogsOn {
287300
[message objectForKey:NRLogMessageMessageKey]);
288301

289302
}
290-
// Only enter this block if remote logging is including this messages level.
291-
NSString *levelString = [message objectForKey:NRLogMessageLevelKey];
292-
NRLogLevels level = [NRLogger stringToLevel:levelString];
293303

294-
BOOL shouldRemoteLog = (self->remoteLogLevel & level) != 0;
304+
// Only enter the second block if remote logging is including this messages level.
295305

306+
BOOL shouldRemoteLog = (self->remoteLogLevel & level) != 0;
296307
if (agentLogsOn) {
297308
shouldRemoteLog = (self->remoteLogLevel & NRLogLevelDebug) != 0;
298309
}

0 commit comments

Comments
 (0)