?? syslogappendertest.java
字號:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.log4j.net;import junit.framework.TestCase;import org.apache.log4j.AsyncAppender;import org.apache.log4j.Layout;import org.apache.log4j.Level;import org.apache.log4j.LogManager;import org.apache.log4j.Logger;import org.apache.log4j.PatternLayout;import org.apache.log4j.VectorErrorHandler;import org.apache.log4j.HTMLLayout;import java.util.StringTokenizer;import java.net.DatagramSocket;import java.net.DatagramPacket;import java.text.SimpleDateFormat;import java.util.Locale;import java.util.Date;import java.util.Calendar;/** * Tests for SyslogAppender * * * */public class SyslogAppenderTest extends TestCase { /** * Create new instance of SyslogAppenderTest. * @param testName test name */ public SyslogAppenderTest(final String testName) { super(testName); } /** * Resets configuration after every test. */ public void tearDown() { LogManager.resetConfiguration(); } /** * Test default constructor. */ public void testDefaultConstructor() { SyslogAppender appender = new SyslogAppender(); assertEquals("user", appender.getFacility()); assertEquals(false, appender.getFacilityPrinting()); assertNull(appender.getLayout()); assertNull(appender.getSyslogHost()); assertTrue(appender.requiresLayout()); } /** * Test two parameter constructor. */ public void testTwoParamConstructor() { Layout layout = new PatternLayout(); SyslogAppender appender = new SyslogAppender(layout, 24); assertEquals("daemon", appender.getFacility()); assertEquals(false, appender.getFacilityPrinting()); assertEquals(layout, appender.getLayout()); assertNull(appender.getSyslogHost()); assertTrue(appender.requiresLayout()); } /** * Test two parameter constructor with unexpected facility. */ public void testTwoParamConstructorBadFacility() { Layout layout = new PatternLayout(); SyslogAppender appender = new SyslogAppender(layout, 25); assertEquals("user", appender.getFacility()); assertEquals(false, appender.getFacilityPrinting()); assertEquals(layout, appender.getLayout()); assertNull(appender.getSyslogHost()); assertTrue(appender.requiresLayout()); } /** * Test three parameter constructor. */ public void testThreeParamConstructor() { Layout layout = new PatternLayout(); SyslogAppender appender = new SyslogAppender(layout, "syslog.example.org", 24); assertEquals("daemon", appender.getFacility()); assertEquals(false, appender.getFacilityPrinting()); assertEquals(layout, appender.getLayout()); assertEquals("syslog.example.org", appender.getSyslogHost()); assertTrue(appender.requiresLayout()); } /** * Test getFacilityString for expected facility codes. */ public void testGetFacilityString() { String expected = "kern user mail daemon auth syslog lpr news " + "uucp cron authpriv ftp local0 local1 local2 local3 " + "local4 local5 local6 local7 "; StringBuffer actual = new StringBuffer(); for (int i = 0; i <= 11; i++) { actual.append(SyslogAppender.getFacilityString(i << 3)); actual.append(' '); } for (int i = 16; i <= 23; i++) { actual.append(SyslogAppender.getFacilityString(i << 3)); actual.append(' '); } assertEquals(expected, actual.toString()); } /** * Test getFacilityString for some unexpected facility codes. */ public void testGetFacilityStringUnexpected() { assertNull(SyslogAppender.getFacilityString(1)); assertNull(SyslogAppender.getFacilityString(12 << 3)); } /** * Test getFacility with a bogus facility name. */ public void testGetFacilityBogus() { assertEquals(-1, SyslogAppender.getFacility("bogus")); } /** * Test getFacility with a null facility name. */ public void testGetFacilityNull() { assertEquals(-1, SyslogAppender.getFacility(null)); } /** * Test getFacility for expected system facility names. */ public void testGetFacilitySystemNames() { String[] names = new String[] { "kErn", "usEr", "MaIL", "daemOn", "auTh", "syslOg", "lPr", "newS", "Uucp", "croN", "authprIv", "ftP" }; for (int i = 0; i <= 11; i++) { assertEquals(i << 3, SyslogAppender.getFacility(names[i])); } } /** * Test getFacility for expected system facility names. */ public void testGetFacilityLocalNames() { String[] names = new String[] { "lOcal0", "LOCAL1", "loCal2", "locAl3", "locaL4", "local5", "LOCal6", "loCAL7" }; for (int i = 0; i <= 7; i++) { assertEquals((16 + i) << 3, SyslogAppender.getFacility(names[i])); } } /** * Test setFacilityPrinting. */ public void testSetFacilityPrinting() { SyslogAppender appender = new SyslogAppender(); assertFalse(appender.getFacilityPrinting()); appender.setFacilityPrinting(true); assertTrue(appender.getFacilityPrinting()); appender.setFacilityPrinting(false); assertFalse(appender.getFacilityPrinting()); } /** * Test of SyslogAppender constants. */ public void testConstants() { assertEquals(0 << 3, SyslogAppender.LOG_KERN); assertEquals(1 << 3, SyslogAppender.LOG_USER); assertEquals(2 << 3, SyslogAppender.LOG_MAIL); assertEquals(3 << 3, SyslogAppender.LOG_DAEMON); assertEquals(4 << 3, SyslogAppender.LOG_AUTH); assertEquals(5 << 3, SyslogAppender.LOG_SYSLOG); assertEquals(6 << 3, SyslogAppender.LOG_LPR); assertEquals(7 << 3, SyslogAppender.LOG_NEWS); assertEquals(8 << 3, SyslogAppender.LOG_UUCP); assertEquals(9 << 3, SyslogAppender.LOG_CRON); assertEquals(10 << 3, SyslogAppender.LOG_AUTHPRIV); assertEquals(11 << 3, SyslogAppender.LOG_FTP); assertEquals(16 << 3, SyslogAppender.LOG_LOCAL0); assertEquals(17 << 3, SyslogAppender.LOG_LOCAL1); assertEquals(18 << 3, SyslogAppender.LOG_LOCAL2); assertEquals(19 << 3, SyslogAppender.LOG_LOCAL3); assertEquals(20 << 3, SyslogAppender.LOG_LOCAL4); assertEquals(21 << 3, SyslogAppender.LOG_LOCAL5); assertEquals(22 << 3, SyslogAppender.LOG_LOCAL6); assertEquals(23 << 3, SyslogAppender.LOG_LOCAL7); } /** * Test setFacility with null. * Should have no effect. */ public void testSetFacilityKern() { SyslogAppender appender = new SyslogAppender(); appender.setFacility("kern"); appender.setFacility(null); assertEquals("kern", appender.getFacility()); } /** * Test setFacility with null. * Should have no effect. */ public void testSetFacilityNull() { SyslogAppender appender = new SyslogAppender(); appender.setFacility("kern"); appender.setFacility(null); assertEquals("kern", appender.getFacility()); } /** * Test setFacility with bogus value. * Should reset to user. */ public void testSetFacilityBogus() { SyslogAppender appender = new SyslogAppender(); appender.setFacility("kern"); appender.setFacility("bogus"); assertEquals("user", appender.getFacility()); } /** * Tests calling setFacility after appender has been activated. */ public void testSetFacilityAfterActivation() { SyslogAppender appender = new SyslogAppender(); appender.setName("foo"); appender.setThreshold(Level.INFO); appender.setSyslogHost("localhost"); appender.setFacility("user"); appender.setLayout(new PatternLayout("%m%n")); VectorErrorHandler errorHandler = new VectorErrorHandler(); appender.setErrorHandler(errorHandler); appender.activateOptions(); appender.setFacility("kern"); assertEquals("kern", appender.getFacility()); } /** * Tests that append method drops messages below threshold. * Can't reach isSevereAsThreshold call in SyslogAppender.append * since it is checked in AppenderSkeleton.doAppend. */ public void testAppendBelowThreshold() { SyslogAppender appender = new SyslogAppender(); appender.setThreshold(Level.ERROR); appender.activateOptions(); Logger logger = Logger.getRootLogger(); logger.addAppender(appender); logger.info( "Should not be logged by SyslogAppenderTest.testAppendBelowThreshold."); } /** * Tests that append method drops messages below threshold. */ public void testAppendNoHost() { SyslogAppender appender = new SyslogAppender();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -