File tree Expand file tree Collapse file tree 2 files changed +41
-6
lines changed
src/main/scala/java/util/logging
testSuite/shared/src/test/scala/org/scalajs/testsuite/javalib/util/logging Expand file tree Collapse file tree 2 files changed +41
-6
lines changed Original file line number Diff line number Diff line change @@ -117,14 +117,19 @@ class Logger(name: String, resourceBundle: String) {
117
117
118
118
def getFilter (): Filter = filter
119
119
120
+ private [Logger ] def publish (record : LogRecord ): Unit = {
121
+ if (useParentsHandlers) {
122
+ val parent = getParent()
123
+ if (parent != null ) {
124
+ parent.publish(record)
125
+ }
126
+ }
127
+ handlers.foreach(_.publish(record))
128
+ }
129
+
120
130
def log (record : LogRecord ): Unit = {
121
131
if (isLoggable(record.getLevel)) {
122
- if (useParentsHandlers) {
123
- val parent = getParent()
124
- if (parent != null )
125
- parent.log(record)
126
- }
127
- handlers.foreach(_.publish(record))
132
+ publish(record)
128
133
}
129
134
}
130
135
Original file line number Diff line number Diff line change @@ -377,4 +377,34 @@ class LoggerTest {
377
377
assertSame(r1, r)
378
378
assertSame(r2, r)
379
379
}
380
+
381
+ @ Test def test_parent_logger_handler (): Unit = {
382
+ val a = Logger .getLogger(s " $prefix.a " )
383
+ a.setLevel(Level .INFO )
384
+ val handlerA = new TestHandler
385
+ a.addHandler(handlerA)
386
+
387
+ val b = Logger .getLogger(s " $prefix.a.b " )
388
+ a.setLevel(Level .INFO )
389
+ val handlerB = new TestHandler
390
+ b.addHandler(handlerB)
391
+
392
+ val child = Logger .getLogger(s " $prefix.a.b.c " )
393
+ child.setLevel(Level .INFO )
394
+ child.fine(" fine_msg" )
395
+
396
+ // a(INFO) -> b(INFO) -> c(INFO)
397
+ // No FINE log level message should be reported because its parent and ancestor level is INFO
398
+ assertNull(handlerA.lastRecord)
399
+ assertNull(handlerB.lastRecord)
400
+
401
+ // a(INFO) -> b(INFO) -> c(FINE)
402
+ child.setLevel(Level .FINE )
403
+ child.fine(" fine_msg2" )
404
+
405
+ assertNotNull(handlerA.lastRecord)
406
+ assertEquals(" fine_msg2" , handlerA.lastRecord.getMessage)
407
+ assertNotNull(handlerB.lastRecord)
408
+ assertEquals(" fine_msg2" , handlerB.lastRecord.getMessage)
409
+ }
380
410
}
You can’t perform that action at this time.
0 commit comments