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]