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) {
117117
118118 def getFilter (): Filter = filter
119119
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+
120130 def log (record : LogRecord ): Unit = {
121131 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)
128133 }
129134 }
130135
Original file line number Diff line number Diff line change @@ -377,4 +377,34 @@ class LoggerTest {
377377 assertSame(r1, r)
378378 assertSame(r2, r)
379379 }
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+ }
380410}
You can’t perform that action at this time.
0 commit comments