You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by sd...@apache.org on 2005/09/03 00:37:09 UTC

cvs commit: logging-log4j build.xml

sdeboy      2005/09/02 15:37:09

  Modified:    .        build.xml
  Added:       src/java/org/apache/log4j/varia SoundAppender.java
  Log:
  Adding soundAppender  - specify a URL to a file supported by Applet.newAudioClip
  
  Revision  Changes    Path
  1.1                  logging-log4j/src/java/org/apache/log4j/varia/SoundAppender.java
  
  Index: SoundAppender.java
  ===================================================================
  /*
   * Copyright 1999,2005 The Apache Software Foundation.
   * 
   * Licensed 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.varia;
  
  import java.applet.Applet;
  import java.applet.AudioClip;
  import java.net.MalformedURLException;
  import java.net.URL;
  
  import org.apache.log4j.AppenderSkeleton;
  import org.apache.log4j.spi.LoggingEvent;
  
  /**
   *  Plays a sound clip created using Applet.newAudioClip when an event is received.
   *  
   *  If the audio format is not supported, a message stating the SoundAppender could 
   *  not be initialized is logged.
   *  
   *  Use a filter in combination with this appender to control when the appender is 
   *  triggered.
   *  
   *  For example, in the appender definition, include a LevelMatchFilter configured
   *  to accept WARN or greater, followed by a DenyAllFilter.
   *  
   *  @author Scott Deboy
   * 
   */
  public final class SoundAppender extends AppenderSkeleton {
  
  	private AudioClip clip;
  	private String audioURL;
  
  	public SoundAppender() {
  		super(true);
  	}
  
  	/**
  	 * Attempt to initialize the appender by creating a reference to an AudioClip.
  	 * 
  	 * Will log a message if format is not supported, file not found, etc.
  	 * 
  	 */
  	public void activateOptions() {
  		/*
  		 * AudioSystem.getAudioInputStream requires jdk 1.3,
  		 * so we use applet.newaudioclip instead
  		 *
  		 */
  		try {
  			clip = Applet.newAudioClip(new URL(audioURL));
  		} catch (MalformedURLException mue) {getLogger().error("unable to initialize SoundAppender", mue);}
  		if (clip == null) {
  		      getLogger().error("Unable to initialize SoundAppender");
  		}
  	}
  
  	/**
  	 * Accessor
  	 * 
  	 * @return audio file
  	 */
  	public final String getAudioURL() {
  		return audioURL;
  	}
  
  	/**
  	 * Mutator - common format for a file-based url:
  	 * file:///c:/path/someaudioclip.wav
  	 * 
  	 * @param audioURL
  	 */
  	public void setAudioURL(String audioURL) {
  		this.audioURL = audioURL;
  	}
  
  	/**
  	 * Play the sound if an event is being processed
  	 */
  	protected void append(LoggingEvent event) {
  		if (clip != null) {
  			clip.play();
  		}
  	}
  
  	public void close() {
  		//nothing to do
  	}
  }
  
  
  
  1.166     +3 -2      logging-log4j/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/logging-log4j/build.xml,v
  retrieving revision 1.165
  retrieving revision 1.166
  diff -u -r1.165 -r1.166
  --- build.xml	28 Jul 2005 18:32:18 -0000	1.165
  +++ build.xml	2 Sep 2005 22:37:09 -0000	1.166
  @@ -622,7 +622,8 @@
                   ${stem}/pattern/*.class,
                   ${stem}/or/*.class,
                   ${stem}/or/sax/*.class,
  -    	        ${stem}/varia/List*Appender.class
  +    	        ${stem}/varia/List*Appender.class,
  +		        ${stem}/varia/SoundAppender.class,
       	        ${stem}/plugins/*.class,
                   ${stem}/config/*.class"
         excludes="**/UnitTest**, 
  @@ -637,7 +638,7 @@
       	        ${stem}/net/JMSAppender.class,
       		    ${stem}/net/JMSSink.class,
       		    ${stem}/net/JMSReceiver.class,
  -    	        ${stem}/**/*BeanInfo.class
  +    	        ${stem}/**/*BeanInfo.class,
                   ${stem}/varia/LogFilePatternReceiver*.class,
   	            ${stem}/rule/LikeRule.class,
       	        ${stem}/net/Multicast*.class,
  
  
  

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