View | Details | Raw Unified | Return to bug 46626
Collapse All | Expand All

(-)tests/src/java/org/apache/log4j/net/SyslogAppenderTest.java (-3 / +72 lines)
Lines 67-72 Link Here
67
    assertEquals(false, appender.getFacilityPrinting());
67
    assertEquals(false, appender.getFacilityPrinting());
68
    assertNull(appender.getLayout());
68
    assertNull(appender.getLayout());
69
    assertNull(appender.getSyslogHost());
69
    assertNull(appender.getSyslogHost());
70
    assertNull(appender.getTag());
70
    assertTrue(appender.requiresLayout());
71
    assertTrue(appender.requiresLayout());
71
  }
72
  }
72
73
Lines 80-85 Link Here
80
    assertEquals(false, appender.getFacilityPrinting());
81
    assertEquals(false, appender.getFacilityPrinting());
81
    assertEquals(layout, appender.getLayout());
82
    assertEquals(layout, appender.getLayout());
82
    assertNull(appender.getSyslogHost());
83
    assertNull(appender.getSyslogHost());
84
    assertNull(appender.getTag());
83
    assertTrue(appender.requiresLayout());
85
    assertTrue(appender.requiresLayout());
84
  }
86
  }
85
87
Lines 93-98 Link Here
93
    assertEquals(false, appender.getFacilityPrinting());
95
    assertEquals(false, appender.getFacilityPrinting());
94
    assertEquals(layout, appender.getLayout());
96
    assertEquals(layout, appender.getLayout());
95
    assertNull(appender.getSyslogHost());
97
    assertNull(appender.getSyslogHost());
98
    assertNull(appender.getTag());
96
    assertTrue(appender.requiresLayout());
99
    assertTrue(appender.requiresLayout());
97
  }
100
  }
98
101
Lines 107-112 Link Here
107
    assertEquals(false, appender.getFacilityPrinting());
110
    assertEquals(false, appender.getFacilityPrinting());
108
    assertEquals(layout, appender.getLayout());
111
    assertEquals(layout, appender.getLayout());
109
    assertEquals("syslog.example.org", appender.getSyslogHost());
112
    assertEquals("syslog.example.org", appender.getSyslogHost());
113
    assertNull(appender.getTag());
110
    assertTrue(appender.requiresLayout());
114
    assertTrue(appender.requiresLayout());
111
  }
115
  }
112
116
Lines 393-400 Link Here
393
      appender.setSyslogHost("127.0.0.1:1514");
397
      appender.setSyslogHost("127.0.0.1:1514");
394
  }
398
  }
395
399
400
  /**
401
    *  Tests SyslogAppender with setTag.
402
    */
403
  public void testTag() {
404
      SyslogAppender appender = new SyslogAppender();
405
      appender.setTag("testtag");
406
      assertEquals("testtag", appender.getTag());
407
  }
408
409
  /**
410
    *  Tests SyslogAppender with null tag.
411
    */
412
  public void testNullTag() {
413
      SyslogAppender appender = new SyslogAppender();
414
      appender.setTag(null);
415
      assertNull(appender.getTag());
416
  }
417
396
    private static String[] log(final boolean header,
418
    private static String[] log(final boolean header,
397
                                final String msg,
419
                                final String msg,
420
                                final String tag,
398
                                final Exception ex,
421
                                final Exception ex,
399
                                final int packets) throws Exception {
422
                                final int packets) throws Exception {
400
        DatagramSocket ds = new DatagramSocket();
423
        DatagramSocket ds = new DatagramSocket();
Lines 404-409 Link Here
404
      appender.setSyslogHost("localhost:" + ds.getLocalPort());
427
      appender.setSyslogHost("localhost:" + ds.getLocalPort());
405
      appender.setName("name");
428
      appender.setName("name");
406
      appender.setHeader(header);
429
      appender.setHeader(header);
430
      appender.setTag(tag);
407
      PatternLayout pl = new PatternLayout("%m");
431
      PatternLayout pl = new PatternLayout("%m");
408
      appender.setLayout(pl);
432
      appender.setLayout(pl);
409
      appender.activateOptions();
433
      appender.activateOptions();
Lines 428-434 Link Here
428
    }
452
    }
429
453
430
    public void testActualLogging() throws Exception {
454
    public void testActualLogging() throws Exception {
431
      String s = log(false, "greetings", null, 1)[0];
455
      String s = log(false, "greetings", null, null, 1)[0];
432
      StringTokenizer st = new StringTokenizer(s, "<>() ");
456
      StringTokenizer st = new StringTokenizer(s, "<>() ");
433
      assertEquals("14", st.nextToken());
457
      assertEquals("14", st.nextToken());
434
      assertEquals("greetings", st.nextToken());
458
      assertEquals("greetings", st.nextToken());
Lines 463-469 Link Here
463
     * @throws Exception on IOException.
487
     * @throws Exception on IOException.
464
     */
488
     */
465
    public void testBadTabbing() throws Exception {
489
    public void testBadTabbing() throws Exception {
466
        String[] s = log(false, "greetings", new MishandledException(), 6);
490
        String[] s = log(false, "greetings", null, new MishandledException(), 6);
467
        StringTokenizer st = new StringTokenizer(s[0], "<>() ");
491
        StringTokenizer st = new StringTokenizer(s[0], "<>() ");
468
        assertEquals("11", st.nextToken());
492
        assertEquals("11", st.nextToken());
469
        assertEquals("greetings", st.nextToken());
493
        assertEquals("greetings", st.nextToken());
Lines 481-487 Link Here
481
     */
505
     */
482
    public void testHeaderLogging() throws Exception {
506
    public void testHeaderLogging() throws Exception {
483
      Date preDate = new Date();
507
      Date preDate = new Date();
484
      String s = log(true, "greetings", null, 1)[0];
508
      String s = log(true, "greetings", null, null, 1)[0];
485
      Date postDate = new Date();
509
      Date postDate = new Date();
486
      assertEquals("<14>", s.substring(0, 4));
510
      assertEquals("<14>", s.substring(0, 4));
487
511
Lines 515-520 Link Here
515
539
516
540
517
    /**
541
    /**
542
     * Tests presence of tag if set
543
     */
544
    public void testHeaderTagLogging() throws Exception {
545
      String s = log(true, "greetings", "testtag", null, 1)[0];
546
      assertEquals("<14>", s.substring(0, 4));
547
548
      StringTokenizer st = new StringTokenizer(s.substring(21), " ");
549
550
      // Throw away the hostname
551
      st.nextToken();
552
553
      assertEquals("testtag:", st.nextToken());
554
    }
555
556
    /**
557
     * Tests presence of tag on every line of the exception
558
     */
559
    public void testHeaderTagExceptionLogging() throws Exception {
560
      String[] s = log(true, "greetings", "testtag", new Exception(), 6);
561
      for(int i=0; i < s.length; i++) {
562
          System.err.println(s[i]);
563
          assertEquals("<11>", s[i].substring(0, 4));
564
          StringTokenizer st = new StringTokenizer(s[i].substring(21), " ");
565
          // Throw away the hostname
566
          st.nextToken();
567
          assertEquals("testtag:", st.nextToken());
568
      }
569
    }
570
571
    /**
572
     * Tests absesence of tag if set to null
573
     */
574
    public void testHeaderNullTagLogging() throws Exception {
575
      String s = log(true, "greetings", null, null, 1)[0];
576
      assertEquals("<14>", s.substring(0, 4));
577
578
      StringTokenizer st = new StringTokenizer(s.substring(21), " ");
579
580
      // Throw away the hostname
581
      st.nextToken();
582
583
      assertEquals("greetings", st.nextToken());
584
    }
585
586
    /**
518
     * Tests that any header or footer in layout is sent.
587
     * Tests that any header or footer in layout is sent.
519
     * @throws Exception if exception during test.
588
     * @throws Exception if exception during test.
520
     */
589
     */
(-)src/main/java/org/apache/log4j/net/SyslogAppender.java (+34 lines)
Lines 109-114 Link Here
109
     */
109
     */
110
  private boolean header = false;
110
  private boolean header = false;
111
    /**
111
    /**
112
     * The tag part of the syslog message
113
     * @since 1.2.18
114
     */
115
  private String tag = null;
116
    /**
112
     * Date format used if header = true.
117
     * Date format used if header = true.
113
     * @since 1.2.15
118
     * @since 1.2.15
114
     */
119
     */
Lines 476-481 Link Here
476
      header = val;
481
      header = val;
477
  }
482
  }
478
483
484
  /**
485
   * If the <b>Tag</b> option is set to a non-null string, the printed HEADER
486
   * will include the specified tag followed by a colon. If set to null, then no
487
   * tag is printed. It is <em>null</em> by default.
488
   *
489
   * @param tag the TAG to be printed out with the header
490
   * @see #getTag()
491
   * @since 1.2.18
492
   */
493
  public void setTag(final String tag) {
494
      this.tag = tag;
495
  }
496
497
  /**
498
   * Returns the TAG to be printed with the HEADER portion of the log message.
499
   * This will return null if no TAG is to be printed.
500
   *
501
   * @return the TAG
502
   * @see #setTag(String)
503
   * @since 1.2.18
504
   */
505
  public String getTag() {
506
      return this.tag;
507
  }
508
479
    /**
509
    /**
480
     * Get the host name used to identify this appender.
510
     * Get the host name used to identify this appender.
481
     * @return local host name
511
     * @return local host name
Lines 508-513 Link Here
508
        }
538
        }
509
        buf.append(getLocalHostname());
539
        buf.append(getLocalHostname());
510
        buf.append(' ');
540
        buf.append(' ');
541
        if(this.tag != null) {
542
            buf.append(this.tag);
543
            buf.append(": ");
544
        }
511
        return buf.toString();
545
        return buf.toString();
512
      }
546
      }
513
      return "";
547
      return "";

Return to bug 46626