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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to