TestLogLevel.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements.  See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership.  The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License.  You may obtain a copy of the License at
  9. *
  10. *     http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. package org.apache.hadoop.log;
  19. import java.io.*;
  20. import java.net.*;
  21. import org.apache.hadoop.http.HttpServer;
  22. import junit.framework.TestCase;
  23. import org.apache.commons.logging.*;
  24. import org.apache.commons.logging.impl.*;
  25. import org.apache.log4j.*;
  26. public class TestLogLevel extends TestCase {
  27.   static final PrintStream out = System.out;
  28.   public void testDynamicLogLevel() throws Exception {
  29.     String logName = TestLogLevel.class.getName();
  30.     Log testlog = LogFactory.getLog(logName);
  31.     //only test Log4JLogger
  32.     if (testlog instanceof Log4JLogger) {
  33.       Logger log = ((Log4JLogger)testlog).getLogger();
  34.       log.debug("log.debug1");
  35.       log.info("log.info1");
  36.       log.error("log.error1");
  37.       assertTrue(!Level.ERROR.equals(log.getEffectiveLevel()));
  38.       HttpServer server = new HttpServer("..", "localhost", 22222, true);
  39.       server.start();
  40.       int port = server.getPort();
  41.       //servlet
  42.       URL url = new URL("http://localhost:" + port
  43.           + "/logLevel?log=" + logName + "&level=" + Level.ERROR);
  44.       out.println("*** Connecting to " + url);
  45.       URLConnection connection = url.openConnection();
  46.       connection.connect();
  47.       BufferedReader in = new BufferedReader(new InputStreamReader(
  48.           connection.getInputStream()));
  49.       for(String line; (line = in.readLine()) != null; out.println(line));
  50.       in.close();
  51.       log.debug("log.debug2");
  52.       log.info("log.info2");
  53.       log.error("log.error2");
  54.       assertTrue(Level.ERROR.equals(log.getEffectiveLevel()));
  55.       //command line
  56.       String[] args = {"-setlevel", "localhost:"+port, logName,""+Level.DEBUG};
  57.       LogLevel.main(args);
  58.       log.debug("log.debug3");
  59.       log.info("log.info3");
  60.       log.error("log.error3");
  61.       assertTrue(Level.DEBUG.equals(log.getEffectiveLevel()));
  62.     }
  63.     else {
  64.       out.println(testlog.getClass() + " not tested.");
  65.     }
  66.   }
  67. }