@@ -312,7 +312,7 @@ public IRubyObject fatal(final ThreadContext context,
312
312
@ JRubyMethod (name = "unknown" )
313
313
public IRubyObject unknown (final ThreadContext context ,
314
314
final IRubyObject msg , final Block block ) {
315
- // NOTE possible to "somehow" support UNKNOWN in RackLogger ?!
315
+ // NOTE possibly - "somehow" support UNKNOWN in RackLogger ?!
316
316
return context .runtime .newBoolean ( add (UNKNOWN , context , msg , block ) );
317
317
}
318
318
@@ -341,9 +341,7 @@ public IRubyObject add(final ThreadContext context,
341
341
public IRubyObject add (final ThreadContext context ,
342
342
final IRubyObject severity , final IRubyObject msg ,
343
343
final IRubyObject progname , final Block block ) {
344
-
345
- // TODO support UNKNOWN in RackLogger ?!
346
-
344
+ // NOTE possibly - "somehow" support UNKNOWN in RackLogger ?!
347
345
return context .runtime .newBoolean ( add (UNKNOWN , context , msg , block ) );
348
346
}
349
347
@@ -445,20 +443,21 @@ private static ByteList formatSeverity(final int severity) {
445
443
446
444
/*
447
445
private static String formatSeverity(final int severity) {
448
- switch ( severity) {
449
- case DEBUG: return "DEBUG";
450
- case INFO : return "INFO" ;
451
- case WARN : return "WARN" ;
452
- case ERROR: return "ERROR";
453
- case FATAL: return "FATAL";
454
- }
455
- return "ANY";
446
+ switch ( severity) {
447
+ case DEBUG: return "DEBUG";
448
+ case INFO : return "INFO" ;
449
+ case WARN : return "WARN" ;
450
+ case ERROR: return "ERROR";
451
+ case FATAL: return "FATAL";
452
+ }
453
+ return "ANY";
456
454
} */
457
455
458
456
// RackLogger
459
457
460
458
@ Override
461
459
public Object toJava (Class target ) {
460
+ // NOTE: maybe this is not a good idea ?!
462
461
if ( RackLogger .class == target ) return logger ;
463
462
return super .toJava (target );
464
463
}
@@ -498,17 +497,63 @@ public void log(Level level, String message, Throwable ex) {
498
497
499
498
@Override @Deprecated
500
499
public void log(String level, String message) {
501
- logger.log(Level.valueOf( level) , message);
500
+ logger.log(level, message);
502
501
}
503
502
504
503
@Override @Deprecated
505
504
public void log(String level, String message, Throwable ex) {
506
- logger.log(Level.valueOf( level) , message, ex);
505
+ logger.log(level, message, ex);
507
506
} */
508
507
508
+ // LoggerSilence API :
509
+
510
+ private static boolean silencer = false ; // we're NOT true by default!
511
+
512
+ @ JRubyMethod (name = "silencer" , meta = true )
513
+ public static IRubyObject get_silencer (final ThreadContext context , final IRubyObject self ) {
514
+ return context .runtime .newBoolean (silencer );
515
+ }
516
+
517
+ @ JRubyMethod (name = "silencer=" , meta = true )
518
+ public static IRubyObject set_silencer (final ThreadContext context , final IRubyObject self ,
519
+ final IRubyObject value ) {
520
+ return context .runtime .newBoolean (silencer = value .isTrue ());
521
+ }
522
+
523
+ @ JRubyMethod (name = "silence" )
524
+ public IRubyObject silence (final ThreadContext context , final Block block ) {
525
+ return doSilence (ERROR , context , block ); // temp_level = Logger::ERROR
526
+ }
527
+
528
+ @ JRubyMethod (name = "silence" , required = 1 )
529
+ public IRubyObject silence (final ThreadContext context ,
530
+ final IRubyObject temp_level , final Block block ) {
531
+ final int tempLevel = (int ) temp_level .convertToInteger ("to_i" ).getLongValue ();
532
+ return doSilence (tempLevel , context , block );
533
+ }
534
+
535
+ private IRubyObject doSilence (final int tempLevel ,
536
+ final ThreadContext context , final Block block ) {
537
+ if ( silencer ) {
538
+ try { // not implemented - on purpose!
539
+ return block .yield (context , this );
540
+ }
541
+ finally { /* noop */ }
542
+ }
543
+ else {
544
+ return block .yield (context , this );
545
+ }
546
+ }
547
+
548
+ // (old) BufferedLogger API compatibility :
549
+
550
+ @ JRubyMethod (name = "flush" , alias = { "auto_flushing" , "auto_flushing=" })
551
+ public IRubyObject stub (final ThreadContext context ) {
552
+ return context .nil ;
553
+ }
509
554
510
555
/**
511
- * @deprecated Likely not used at all, mostly for 1.1 compatibility!
556
+ * @deprecated Likely, no longer used at all, mostly for 1.1 compatibility.
512
557
*/
513
558
@ JRubyClass (name ="JRuby::Rack::ServletLog" )
514
559
public static class ServletLog extends RubyObject {
@@ -564,19 +609,17 @@ public IRubyObject initialize(final ThreadContext context, final IRubyObject[] a
564
609
565
610
@ JRubyMethod
566
611
public IRubyObject write (final IRubyObject msg ) {
567
- // NOTE: this is a Java RackContext#log (RackLogger#log) call ...
568
- //return getInstanceVariable("@context").callMethod(context, "log", msg);
569
612
context .log ( msg .toString () );
570
613
return msg ;
571
614
}
572
615
573
616
@ JRubyMethod
574
617
public IRubyObject puts (final IRubyObject msg ) {
575
- return write (msg ); // return this.callMethod(context, "write", msg);
618
+ return write (msg );
576
619
}
577
620
578
621
@ JRubyMethod (name = "close" , alias = "flush" )
579
- public IRubyObject close (final ThreadContext context ) {
622
+ public IRubyObject noop (final ThreadContext context ) {
580
623
return context .nil ; /* NOOP */
581
624
}
582
625
0 commit comments