You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by ms...@apache.org on 2003/06/06 16:02:09 UTC

cvs commit: jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler AbstractJavaSamplerClient.java

mstover1    2003/06/06 07:02:09

  Modified:    bin      jmeter.properties
               src/core/org/apache/jmeter/config/gui ArgumentsPanel.java
               src/core/org/apache/jmeter/engine ClientJMeterEngine.java
               src/core/org/apache/jmeter/gui
                        AbstractJMeterGuiComponent.java
               src/core/org/apache/jmeter/gui/action AbstractAction.java
                        ActionRouter.java AddParent.java AddToTree.java
                        ChangeLanguage.java Clear.java
               src/core/org/apache/jmeter/testelement
                        AbstractTestElement.java
               src/core/org/apache/jmeter/testelement/property
                        AbstractProperty.java
               src/core/org/apache/jmeter/util JMeterUtils.java
               src/core/org/apache/jmeter/visualizers/gui
                        AbstractVisualizer.java
               src/jorphan/org/apache/jorphan/logging LoggingManager.java
               src/jorphan/org/apache/jorphan/reflect ClassFinder.java
               src/jorphan/org/apache/jorphan/test AllTests.java
               src/protocol/http/org/apache/jmeter/protocol/http/gui
                        AuthPanel.java
               src/protocol/http/org/apache/jmeter/protocol/http/modifier
                        AnchorModifier.java
               src/protocol/java/org/apache/jmeter/protocol/java/sampler
                        AbstractJavaSamplerClient.java
  Added:       src/jorphan/org/apache/jorphan/util ClassContext.java
  Log:
  New Logging procedure (Sebastian Bazley)
  
  Revision  Changes    Path
  1.76      +21 -12    jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- jmeter.properties	5 Jun 2003 17:33:36 -0000	1.75
  +++ jmeter.properties	6 Jun 2003 14:02:07 -0000	1.76
  @@ -70,22 +70,31 @@
   not_in_menu=Remote Method Configuration,JNDI Configuration,JNDI Lookup Configuration,JNDI Request,Default Controller,org.apache.jmeter.control.DynamicController, org.apache.jmeter.protocol.http.control.Cookie,org.apache.jmeter.protocol.http.control.Authorization,org.apache.jmeter.config.LoginConfig,Header,org.apache.jmeter.protocol.http.config.MultipartUrlConfig
   
   #Logging levels for the logging categories in JMeter.  Correct values are FATAL_ERROR, ERROR, WARN, INFO, and DEBUG
  +# To set the log level for a package or individual class, use:
  +# log_level.[package_name].[classname]=[PRIORITY_LEVEL]
  +# But omit "org.apache" from the package name.  The classname is optional.  Further examples below.
  +
   log_level.jmeter=WARN
  -log_level.jmeter.engine=WARN
  -log_level.jmeter.gui=DEBUG
  -log_level.jmeter.elements=WARN
  -log_level.jmeter.util=WARN
  -log_level.jmeter.util.classfinder=WARN
  -log_level.jmeter.test=DEBUG
  -log_level.jmeter.protocol.http=DEBUG
  -log_level.jmeter.protocol.ftp=WARN
  -log_level.jmeter.protocol.jdbc=WARN
  -log_level.jmeter.protocol.java=WARN
  -log_level.jmeter.elements.properties=WARN
  +log_level.jmeter.junit=DEBUG
  +#log_level.jmeter.engine=WARN
  +#log_level.jmeter.gui=WARN
  +#log_level.jmeter.testelement=WARN
  +#log_level.jmeter.util=WARN
  +#log_level.jmeter.util.classfinder=WARN
  +#log_level.jmeter.test=DEBUG
  +#log_level.jmeter.protocol.http=DEBUG
  +#log_level.jmeter.protocol.ftp=WARN
  +#log_level.jmeter.protocol.jdbc=WARN
  +#log_level.jmeter.protocol.java=WARN
  +#log_level.jmeter.testelements.property=WARN
   log_level.jorphan=ERROR
   
   #Log file for log messages.
  -log_file=jmeter.log
  +# You can specify a different log file for different categories via:
  +# log_file.[category]=[filename]
  +# category is equivalent to the package/class names described above
  +
  +log_file.jmeter=jmeter.log
   
   
   #---------------------------------------------------------------------------
  
  
  
  1.16      +3 -4      jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
  
  Index: ArgumentsPanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ArgumentsPanel.java	4 Jun 2003 14:31:43 -0000	1.15
  +++ ArgumentsPanel.java	6 Jun 2003 14:02:07 -0000	1.16
  @@ -79,7 +79,7 @@
   import org.apache.jmeter.testelement.property.PropertyIterator;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.gui.ObjectTableModel;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /**
  @@ -95,8 +95,7 @@
       implements  ActionListener
   {
       /** Logging. */
  -    private static transient Logger log =
  -        Hierarchy.getDefaultHierarchy().getLoggerFor(JMeterUtils.GUI);
  +    private static transient Logger log =LoggingManager.getLoggerForClass();
           
       /** The title label for this component. */    
       private JLabel tableLabel;
  
  
  
  1.8       +4 -5      jakarta-jmeter/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java
  
  Index: ClientJMeterEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ClientJMeterEngine.java	2 May 2003 20:58:10 -0000	1.7
  +++ ClientJMeterEngine.java	6 Jun 2003 14:02:07 -0000	1.8
  @@ -61,7 +61,7 @@
   import org.apache.jmeter.testelement.TestListener;
   import org.apache.jorphan.collections.HashTree;
   import org.apache.jorphan.collections.SearchByClass;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   
  @@ -74,8 +74,7 @@
    ***********************************************************/
   public class ClientJMeterEngine implements JMeterEngine,Runnable
   {
  -	transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.engine");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	RemoteJMeterEngine remote;
   	HashTree test;
   	SearchByClass testListeners;
  
  
  
  1.22      +2 -3      jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java
  
  Index: AbstractJMeterGuiComponent.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- AbstractJMeterGuiComponent.java	29 May 2003 13:33:56 -0000	1.21
  +++ AbstractJMeterGuiComponent.java	6 Jun 2003 14:02:08 -0000	1.22
  @@ -69,7 +69,6 @@
   import org.apache.jmeter.testelement.property.BooleanProperty;
   import org.apache.jmeter.testelement.property.NullProperty;
   import org.apache.jmeter.testelement.property.StringProperty;
  -import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
  @@ -96,7 +95,7 @@
       implements JMeterGUIComponent
   {
       /** Logging */
  -    private static Logger log = LoggingManager.getLoggerFor(JMeterUtils.GUI);
  +    private static Logger log = LoggingManager.getLoggerForClass();
       
       /** Flag indicating whether or not this component is enabled. */
       private boolean enabled = true;
  
  
  
  1.8       +1 -2      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AbstractAction.java
  
  Index: AbstractAction.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AbstractAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AbstractAction.java	29 Apr 2003 15:47:43 -0000	1.7
  +++ AbstractAction.java	6 Jun 2003 14:02:08 -0000	1.8
  @@ -8,7 +8,6 @@
   import org.apache.jmeter.control.ReplaceableController;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.testelement.TestElement;
  -import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.collections.HashTree;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
  @@ -20,7 +19,7 @@
    * Window>Preferences>Java>Templates.
    */
   public abstract class AbstractAction implements Command {
  -    protected static Logger log = LoggingManager.getLoggerFor(JMeterUtils.GUI);
  +    protected static Logger log = LoggingManager.getLoggerForClass();
   
   	/**
   	 * @see Command#doAction(ActionEvent)
  
  
  
  1.14      +2 -2      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/ActionRouter.java
  
  Index: ActionRouter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/ActionRouter.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ActionRouter.java	5 Jun 2003 16:22:21 -0000	1.13
  +++ ActionRouter.java	6 Jun 2003 14:02:08 -0000	1.14
  @@ -68,8 +68,8 @@
   
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.util.JMeterUtils;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.jorphan.reflect.ClassFinder;
  -import org.apache.log.Hierarchy;
   import org.apache.log.Logger;
   
   /**
  @@ -85,7 +85,7 @@
       private Map commands = new HashMap();
       private static ActionRouter router;
       private static AddToTree add = new AddToTree();
  -    transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.gui");
  +    transient private static Logger log = LoggingManager.getLoggerForClass();
       private Map preActionListeners = new HashMap();
       private Map postActionListeners = new HashMap();
   
  
  
  
  1.6       +3 -4      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddParent.java
  
  Index: AddParent.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddParent.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AddParent.java	3 Feb 2003 16:08:35 -0000	1.5
  +++ AddParent.java	6 Jun 2003 14:02:08 -0000	1.6
  @@ -62,7 +62,7 @@
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.testelement.TestElement;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /****************************************
  @@ -75,8 +75,7 @@
   
   public class AddParent implements Command
   {
  -	transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.gui");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	private static Set commands = new HashSet();
   	static
   	{
  
  
  
  1.7       +5 -6      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddToTree.java
  
  Index: AddToTree.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddToTree.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AddToTree.java	3 Feb 2003 16:08:35 -0000	1.6
  +++ AddToTree.java	6 Jun 2003 14:02:08 -0000	1.7
  @@ -66,7 +66,7 @@
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.testelement.TestElement;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /**
  @@ -78,8 +78,7 @@
    */
   public class AddToTree implements Command
   {
  -	transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.gui");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	private Map allJMeterComponentCommands;
   
   	public AddToTree()
  
  
  
  1.7       +1 -1      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/ChangeLanguage.java
  
  Index: ChangeLanguage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/ChangeLanguage.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ChangeLanguage.java	5 Feb 2003 05:12:07 -0000	1.6
  +++ ChangeLanguage.java	6 Jun 2003 14:02:08 -0000	1.7
  @@ -73,7 +73,7 @@
   {
   	private static final Set commands = new HashSet();
   	public final static String CHANGE_LANGUAGE = "change_language";
  -	private Logger log = LoggingManager.getLoggerFor(JMeterUtils.GUI);
  +	private Logger log = LoggingManager.getLoggerForClass();
   	
   	static
   	{
  
  
  
  1.5       +3 -4      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Clear.java
  
  Index: Clear.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Clear.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Clear.java	3 Feb 2003 16:08:35 -0000	1.4
  +++ Clear.java	6 Jun 2003 14:02:08 -0000	1.5
  @@ -63,7 +63,7 @@
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.samplers.Clearable;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /************************************************************
  @@ -76,8 +76,7 @@
   
   public class Clear implements Command
   {
  -	transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.gui");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	public final static String CLEAR = "action.clear";
   	public final static String CLEAR_ALL = "action.clear_all";
   
  
  
  
  1.19      +3 -3      jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
  
  Index: AbstractTestElement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- AbstractTestElement.java	7 May 2003 15:23:16 -0000	1.18
  +++ AbstractTestElement.java	6 Jun 2003 14:02:08 -0000	1.19
  @@ -14,7 +14,7 @@
   import org.apache.jmeter.testelement.property.PropertyIteratorImpl;
   import org.apache.jmeter.testelement.property.StringProperty;
   import org.apache.jmeter.testelement.property.TestElementProperty;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /****************************************
  @@ -27,7 +27,7 @@
   
   public abstract class AbstractTestElement implements TestElement, Serializable
   {
  -    protected static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.elements");
  +    protected static Logger log = LoggingManager.getLoggerForClass();
   
       private Map propMap = Collections.synchronizedMap(new HashMap());
   
  
  
  
  1.7       +1 -2      jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java
  
  Index: AbstractProperty.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractProperty.java	2 May 2003 21:38:09 -0000	1.6
  +++ AbstractProperty.java	6 Jun 2003 14:02:08 -0000	1.7
  @@ -6,13 +6,12 @@
   import java.util.Map;
   
   import org.apache.jmeter.testelement.TestElement;
  -import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   public abstract class AbstractProperty implements JMeterProperty
   {
  -    protected static Logger log = LoggingManager.getLoggerFor(JMeterUtils.PROPERTIES);
  +    protected static Logger log = LoggingManager.getLoggerForClass();
       private String name;
       private boolean runningVersion = false;
       private Map ownerMap;
  
  
  
  1.26      +5 -1      jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterUtils.java
  
  Index: JMeterUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterUtils.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- JMeterUtils.java	6 Jun 2003 13:03:56 -0000	1.25
  +++ JMeterUtils.java	6 Jun 2003 14:02:08 -0000	1.26
  @@ -990,3 +990,7 @@
   
   
   
  +
  +
  +
  +
  
  
  
  1.16      +3 -4      jakarta-jmeter/src/core/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
  
  Index: AbstractVisualizer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AbstractVisualizer.java	10 May 2003 21:33:00 -0000	1.15
  +++ AbstractVisualizer.java	6 Jun 2003 14:02:08 -0000	1.16
  @@ -19,7 +19,7 @@
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jmeter.visualizers.Visualizer;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /**
  @@ -35,8 +35,7 @@
       implements Visualizer, ChangeListener, UnsharedComponent
   {
       /** Logging. */
  -    protected static transient Logger log =
  -        Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.gui");
  +    protected static transient Logger log =LoggingManager.getLoggerForClass();
   
       /** A panel allowing results to be saved. */
       private FilePanel filePanel;
  
  
  
  1.3       +116 -45   jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java
  
  Index: LoggingManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LoggingManager.java	4 Jun 2003 14:31:44 -0000	1.2
  +++ LoggingManager.java	6 Jun 2003 14:02:08 -0000	1.3
  @@ -58,10 +58,10 @@
   import java.io.FileWriter;
   import java.io.PrintWriter;
   import java.io.Writer;
  -import java.util.HashMap;
   import java.util.Iterator;
  -import java.util.Map;
  +import java.util.Properties;
   
  +import org.apache.jorphan.util.ClassContext;
   import org.apache.log.Hierarchy;
   import org.apache.log.LogTarget;
   import org.apache.log.Logger;
  @@ -78,88 +78,160 @@
   public class LoggingManager
   {
   	private static PatternFormatter format =
  -		new PatternFormatter("%{time:MM/dd/yyyy h:mm:ss a} %{priority} - %{category}: %{message} %{throwable}\n");
  -	private static LogTarget target;
  +		new PatternFormatter("%{time:MM/dd/yyyy h:mm:ss a} %5.5{priority} - %{category}: %{message} %{throwable}\n");
  +	private static LogTarget target; // used to hold the default logging target
   	public final static String LOG_FILE = "log_file";
   	public final static String LOG_PRIORITY = "log_level";
   	private static LoggingManager logManager = null;
   	
  -	static
  -	{
  -		Map initProps = new HashMap();
  -		initProps.put("log_level.jorphan","ERROR");
  -		initializeLogging(initProps);
  -	}
  -	
   	private LoggingManager()
   	{
  -		target = new NullOutputLogTarget();
  +		target = new NullOutputLogTarget();// ensure that target is valid initially
   	}
   	public static LoggingManager getLogManager()
   	{
   		return logManager;
   	}
  -	public static void initializeLogging(Map properties)
  +		
  +	/**
  +	 * Initialise the logging system from the Jmeter properties.
  +	 * Logkit loggers inherit from their parents.
  +	 * 
  +	 * Normally the jmeter properties file defines a single log file, so
  +	 * set this as the default from "log_file", default "jmeter.log"
  +	 * The default priority is set from "log_level", with a default of INFO
  +	 * 
  +	 */
  +	public static void initializeLogging(Properties properties)
   	{
   		if (logManager == null)
   		{
   			logManager = new LoggingManager();
   		}
  -		setLoggingLevels(properties,(String)properties.get(LOG_FILE));
  +
  +		// Set the top-level defaults
  +		setTarget(makeWriter(properties.getProperty(LOG_FILE,"jmeter.log"),LOG_FILE));
  +		setPriority(properties.getProperty(LOG_PRIORITY,"INFO"));
  +		
  +		setLoggingLevels(properties); // now set the individual categories (if any)
   	}
  -	private static void setLoggingLevels(Map appProperties,String logFile)
  -	{
  -		WriterTarget tempTarget = null;
  +	
  +	/*
  +	 * Helper method to handle log target creation
  +	 * If there is an error creating the file, then it uses System.out
  +	 */
  +	private static Writer makeWriter(String logFile, String propName){
  +		Writer wt;
   		try
   		{
  -			tempTarget = new WriterTarget(new FileWriter(logFile),format);
  +			wt = new FileWriter(logFile);
   		}
   		catch(Exception e){
  -			target = new WriterTarget(new PrintWriter(System.out),format);
  +			System.out.println(propName + "=" + logFile + " "+e.toString());
  +			System.out.println("["+ propName + "-> System.out]");
  +			wt = new PrintWriter(System.out);
   		}
  -		Iterator names = appProperties.keySet().iterator();
  -		while (names.hasNext())
  +		return wt;
  +    }
  +    
  +	/*
  +	 * Handle LOG_PRIORITY.category=priority and LOG_FILE.category=file_name properties
  +	 * If the prefix is detected, then remove it to get the category
  +	 */
  +	private static void setLoggingLevels(Properties appProperties)
  +	{
  +		Iterator props = appProperties.keySet().iterator();
  +		while (props.hasNext())
   		{
  -			String prop = (String) names.next();
  -			if (prop.startsWith(LOG_PRIORITY))
  +			String prop = (String) props.next();
  +			if (prop.startsWith(LOG_PRIORITY+".")) // don't match the empty category
   			{
  -				String name = prop.substring(LOG_PRIORITY.length() + 1);
  -				logManager.setPriority(
  -					Priority.getPriorityForName((String) appProperties.get(prop)),
  -					name);
  -				if(tempTarget != null)
  -				{
  -					logManager.setTarget(tempTarget,name);
  -				}
  -				else
  -				{
  -					logManager.setTarget(target,name);
  -				}
  +				String category = prop.substring(LOG_PRIORITY.length() + 1);
  +				setPriority(appProperties.getProperty(prop),category);
  +			}
  +			if (prop.startsWith(LOG_FILE+"."))
  +			{
  +				String category = prop.substring(LOG_FILE.length() + 1);
  +				String file = appProperties.getProperty(prop);
  +				setTarget(new WriterTarget(makeWriter(file,prop),format),category);
   			}
   		}
   	}
  +	
  +	private final static String PACKAGE_PREFIX = "org.apache.";
  +	/*
  +	 * Stack contains the follow when the context is obtained:
  +	 * 0 - getCallerClassNameAt()
  +	 * 1 - this method
  +	 * 2 - getLoggerForClass
  +	 * 
  +	 */
  +	private static String getCallerClassName(){
  +		String name = ClassContext.getCallerClassNameAt(3);
  +		if (name.startsWith(PACKAGE_PREFIX)) {// remove the package prefix
  +			name=name.substring(PACKAGE_PREFIX.length());
  +		}
  +		return name;
  +	}
  +	/**
  +	 * Get the Logger for a class - no argument needed because the calling class name
  +	 * is derived automatically from the call stack
  +	 * 
  +	 * @return Logger
  +	 */
  +	public static Logger getLoggerForClass()
  +	{
  +		String className = getCallerClassName();
  +		return Hierarchy.getDefaultHierarchy().getLoggerFor(className);
  +	}
  +	/**
  +	 * 
  +	 * @param ignored - String
  +	 * @deprecated - this version is temporary; use the no-argument version instead
  +	 * @return
  +	 */
  +	public static Logger getLoggerForClass(String unused)
  +	{
  +		String className = getCallerClassName();
  +		return Hierarchy.getDefaultHierarchy().getLoggerFor(className);
  +	}
   	public static Logger getLoggerFor(String category)
   	{
   		return Hierarchy.getDefaultHierarchy().getLoggerFor(category);
   	}
  -    
  -	public void setPriority(Priority p, String category)
  +	
  +	public static void setPriority(String p, String category)
  +	{
  +		setPriority(Priority.getPriorityForName(p),category);
  +	}
  +	public static void setPriority(Priority p, String category)
   	{
   		Hierarchy.getDefaultHierarchy().getLoggerFor(category).setPriority(p);
   	}
  -	
  -	public void setTarget(LogTarget target,String category)
  +	public static void setPriority(String p)
  +	{
  +		setPriority(Priority.getPriorityForName(p));
  +	}
  +	public static void setPriority(Priority p)
  +	{
  +		Hierarchy.getDefaultHierarchy().setDefaultPriority(p);
  +	}
  +	public static void setTarget(LogTarget target,String category)
   	{
  -		Logger logger = getLoggerFor(category);
  +		Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor(category); 
   		logger.setLogTargets(new LogTarget[]{target});
   	}
  -	public void setTarget(Writer targetFile)
  +	/**
  +	 * Sets the default log target from the parameter
  +	 * The existing target is first closed if necessary
  +	 * 
  +	 * @param targetFile (Writer)
  +	 */
  +	public static void setTarget(Writer targetFile)
   	{
   		if (target == null)
   		{
   			target = new WriterTarget(targetFile, format);
  -			Hierarchy.getDefaultHierarchy().setDefaultLogTarget(
  -				new WriterTarget(targetFile, format));
   		}
   		else
   		{
  @@ -168,8 +240,7 @@
   				((WriterTarget)target).close();
   			}
   			target = new WriterTarget(targetFile, format);
  -			Hierarchy.getDefaultHierarchy().setDefaultLogTarget(
  -				new WriterTarget(targetFile, format));
   		}
  +		Hierarchy.getDefaultHierarchy().setDefaultLogTarget(target);
   	}
   }
  
  
  
  1.3       +2 -4      jakarta-jmeter/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java
  
  Index: ClassFinder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ClassFinder.java	17 Oct 2002 20:05:38 -0000	1.2
  +++ ClassFinder.java	6 Jun 2003 14:02:08 -0000	1.3
  @@ -70,9 +70,8 @@
   import java.util.zip.ZipEntry;
   import java.util.zip.ZipFile;
   
  -import org.apache.log.Logger;
  -
   import org.apache.jorphan.logging.LoggingManager;
  +import org.apache.log.Logger;
   /************************************************************
    *  This class finds classes that implement one or more specified interfaces.
    *  
  @@ -81,8 +80,7 @@
    ******************************************/
   public class ClassFinder
   {
  -	transient private static Logger log =
  -		LoggingManager.getLoggerFor("jorphan.reflect");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	private ClassFinder()
   	{
   	}
  
  
  
  1.4       +1 -3      jakarta-jmeter/src/jorphan/org/apache/jorphan/test/AllTests.java
  
  Index: AllTests.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/test/AllTests.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AllTests.java	16 Apr 2003 20:35:28 -0000	1.3
  +++ AllTests.java	6 Jun 2003 14:02:08 -0000	1.4
  @@ -68,7 +68,6 @@
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.jorphan.reflect.ClassFinder;
   import org.apache.jorphan.util.JOrphanUtils;
  -import org.apache.log.Hierarchy;
   import org.apache.log.Logger;
   
   /************************************************************
  @@ -116,8 +115,7 @@
    ***********************************************************/
   public class AllTests
   {
  -	transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.test");
  +	transient private static Logger log = LoggingManager.getLoggerForClass();
   	/************************************************************
   	 *  Constructor for the AllTests object
   	 ***********************************************************/
  
  
  
  1.1                  jakarta-jmeter/src/jorphan/org/apache/jorphan/util/ClassContext.java
  
  Index: ClassContext.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  /*
   * Created on 05-Jun-2003
   *
   */
  package org.apache.jorphan.util;
  
  /**
   * Class to get access to the protected getClassContext() method of SecurityManager,
   * thus obtaining the call stack.
   * 
   * May not work with applications that install their own security managers
   * 
   * @author
   * @version $Id: ClassContext.java,v 1.1 2003/06/06 14:02:09 mstover1 Exp $
   *
   */
  public class ClassContext extends SecurityManager {
  	private ClassContext(){// don't allow others to instantiate this
  	}
  	
  	private static ClassContext _instance= new ClassContext();
  	
  	/*
  	 * N.B. Both static routines pick up the instance context directly
  	 * This ensures that both return the same stack depth
  	 */
  	 
  	/**
  	 * Gets the calling context as an array of classes
  	 * Class[0] is this class.
  	 *  
  	 * @return Class[] - list of classes in the callers context
  	 */
  	public static Class[] getMyClassContext()
  	{
  		return _instance.getClassContext();
  	}
  	/**
  	 * Get the name of the class at a particular stack depth
  	 * i=0 gives this class
  	 * 
  	 * @param i - stack depth
  	 * @return String - name of class at depth i
  	 */
  	public static String getCallerClassNameAt(int i){
  		return _instance.getClassContext()[i].getName();
  	}
  }
  
  
  
  1.10      +11 -12    jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java
  
  Index: AuthPanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/gui/AuthPanel.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AuthPanel.java	27 Apr 2003 23:04:34 -0000	1.9
  +++ AuthPanel.java	6 Jun 2003 14:02:09 -0000	1.10
  @@ -82,7 +82,7 @@
   import org.apache.jmeter.protocol.http.control.Authorization;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.util.JMeterUtils;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /****************************************
  @@ -96,8 +96,7 @@
    ***************************************/
   public class AuthPanel extends AbstractConfigGui implements ActionListener
   {
  -    transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
  -			"jmeter.protocol.http");
  +    transient private static Logger log = LoggingManager.getLoggerForClass();
   
       private static final String ADD_COMMAND = "Add";
       private static final String DELETE_COMMAND = "Delete";
  
  
  
  1.7       +3 -3      jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java
  
  Index: AnchorModifier.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AnchorModifier.java	5 Jun 2003 17:33:38 -0000	1.6
  +++ AnchorModifier.java	6 Jun 2003 14:02:09 -0000	1.7
  @@ -79,7 +79,7 @@
   import org.apache.jmeter.testelement.property.PropertyIterator;
   import org.apache.jmeter.threads.JMeterContextService;
   import org.apache.jorphan.io.TextFile;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   import org.w3c.dom.Document;
   import org.w3c.dom.NamedNodeMap;
  @@ -98,7 +98,7 @@
   
   public class AnchorModifier extends AbstractTestElement implements PreProcessor, Serializable
   {
  -    transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.protocol.http");
  +    transient private static Logger log = LoggingManager.getLoggerForClass();
       private static Random rand = new Random();
   
       /************************************************************
  
  
  
  1.5       +3 -4      jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java
  
  Index: AbstractJavaSamplerClient.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractJavaSamplerClient.java	8 May 2003 21:03:37 -0000	1.4
  +++ AbstractJavaSamplerClient.java	6 Jun 2003 14:02:09 -0000	1.5
  @@ -55,7 +55,7 @@
   package org.apache.jmeter.protocol.java.sampler;
   
   import org.apache.jmeter.config.Arguments;
  -import org.apache.log.Hierarchy;
  +import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
   /**
  @@ -98,8 +98,7 @@
        * 
        * @see #getLogger()
        */
  -    private static transient Logger log =
  -        Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.protocol.java");
  +    private static transient Logger log = LoggingManager.getLoggerForClass();
   
       /* Implements JavaSamplerClient.setupTest(JavaSamplerContext) */
       public void setupTest(JavaSamplerContext context)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org